Páginas

2018/05/10

Pasos para hacer un Upload de 100 Megabytes bajo Nginx y ASP.NET Core 2


Pasos para hacer un Upload de 100 Megabytes bajo Nginx y ASP.NET Core 2

(y que no nos salga el error "413 Payload Too Large" (Kestrel) o  "413 Request Entity Too Large" (Nginx) )


Paso 1: Modificar nuestro web.config

<configuration>
  <system.web>
     <httpRuntime maxRequestLength="102400" /><!-- 100 MB in kilobytes -->
  </system.web>
  <system.webServer>

   ...
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="102428800" /> <!--100 MB in bytes -->
     </requestFiltering>
  </security>

...
 </system.webServer>


Paso 2: Modificar nuestra configuración de Nginx

En mi caso tengo una configuración propia en /etc/nginx/sites-enabled/proyecto.conf
pero también es factible modificar /etc/nginx/nginx.conf

Añadiendo
client_max_body_size 100M; #si lo establecemos a 0 no hay límite.
dentro de la sección location / {} ,y server {..}, aunque también he leído que  haría falta en http {...} de nginx.conf

En mi caso yo lo he establecido en location y en server, y me ha funcionado.

Acordarse de luego hacer un nginx -s reload o service nginx reload


Paso 3: Modificar el comportamiento Kestrel

Este paso no aparece en todos los sitios y es esencial.

Nos vamos a Program.cs 

.UseKestrel(options=>
 {
   options.Limits.MaxRequestBodySize = 102428800; //100 Megas en bytes
 })





2018/04/25

Publicar un proyecto ASP.NET Core con todas sus dependencias

Si después de publicar un proyecto ASP.NET Core te han faltado librerías .dll que están reflejadas en el fichero proyecto.deps.json, y no quieres ir copiando una a una, tienes que añadir la siguiente línea a tu fichero .csproj del proyecto:

 <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
  </PropertyGroup>


Enlace:
https://www.benday.com/2018/02/23/force-dotnet-publish-to-publish-dependencies-using-publishwithaspnetcoretargetmanifest/


2018/04/12

Error 404 después de publicar con ASP .NET Core

Si después de publicar, alojar todo correctamente en tu IIS y al acceder a tu web API no se muestra nada y compruebas que está devolviendo un error 404 (recurso no encontrado), comprueba que la cadena conexión a la base de datos es correcta y tiene los permisos adecuados.

En mi caso, la cadena de conexión que la tenía escrita en appsettings.json no le había incluído el usuario, despiste mío.

2018/03/23

Cómo publicar un proyecto web de ASP.Net Core 2 en Ubuntu

1) Estando en un directorio del proyecto bajo Windows, publicamos de esta forma:

    dotnet publish -r ubuntu.16.10-x64 -o C:\Proyectos\ProyectoPublish

    C:\Proyectos\ProyectoPublish es la ruta de destino donde publicaremos.


2) Copiamos la publicación y la movemos a la carpeta Ubuntu /var/www/ProyectoPublish


3) Ponemos en marcha el proyecto publicado:

  a) Dentro de la ruta donde está el proyecto publicado (/var/www/ProyectoPublish/), ejecutar

     dotnet nombreProyecto.dll
   
     (Si no tenemos dotnet instalado mirar la siguiente página https://docs.microsoft.com/es-es/dotnet/core/linux-prerequisites?tabs=netcore2x )
   
  b) Entrar en

        http://localhost:5000/

Primera toma de contacto con ASP.NET Core 2

Quisiera compartir algunos apuntes que he anotado a medida que avanzaba en mi primer proyecto con ASP .NET Core 2:

* Si queremos aumentar el tiempo que necesita una petición en su ejecución:

  Solución: Ir al web.config y modificar o añadir la propiedad requestTimeout. En el siguiente ejemplo hasta 10 minutos:



* Añadir funciones de logueo (registro en logs)

 
 Solución: en el web.config añadir:

 stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout"

Importante: Los logs no se escriben si no existe la carpeta \logs . Hay que crear esta carpeta.


* Si se produce este error:
   
    This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
    aspnetcore-store-2.0.6.xml 



Se puede arreglar añadiendo esto en el archivo .csproj del proyecto
   


 * Si se produce este error:

Development environment should not be enabled in deployed applications ...   
   
    Debemos añadir estas líneas al web.config del proyecto publicado:

Esto ocurre porque la aplicación tiene algún error que necesita mostrar.

* Si se produce el siguiente error:

Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor'


Añadiremos en el fichero Startup.cs:


2017/11/28

IIS deja de funcionar después de instalar actualización Windows 10

En la mayoría de las páginas que visitaba se daba la solución de reinstalar el módulo IIS URL Rewrite como indica en esta página: https://weblog.west-wind.com/posts/2015/jul/05/windows-10-upgrade-and-iis-503-errors 

Pero mi problema no era éste pues mi IIS no disponía de este módulo. 

Revisé el Visor de Sucesos o EventLog de mi sistema. En el apartado Registros de Windows | Aplicación, me encontré con este error: 

Error IIS-W3SVC-WP 2307

Busqué en la web por “IIS-W3SVC-WP error 2307” pero a pesar de ello, el problema no era el mismo: lo que leía no contemplaba la palabra ‘<EMPTY>’ que a mí me aparecía y en estas páginas no.
 Después de otorgar permisos a varias carpetas, reinstalar IIS Express, activar y desactivar características de Windows, e intentar otras soluciones más, encontré la siguiente que funcionó y espero que a ti, que has llegado hasta aquí, también te sirva: 

(antes de nada te aconsejo exportar las configuraciones que tengas en IIS como indica aquí: http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/

1) Para el IIS desde una consola de comandos y escribe iisreset /stop 

2) Borra el contenido de la carpeta c:\inetpub\temp\appPools, pero no la propia appPools pues es un directorio necesario. 

3) Pon en marcha otra vez IIS con iisreset /start 


Y ya debería funcionar todo. 

Yo tuve un problema adicional y es que uno de mis Sitios no llegaba a arrancar y solamente se me mostraba la sección de Administración con dos iconos (el Editor de Configuración y el Instalador de Plataforma Web). 

Me fijé que le faltaba un enlace (a la derecha Modificar Sitio | Enlaces…). Agregué el puerto 80 y solucionado.

2017/04/25

Configurar el IDE Atom a través de un proxy corporativo


Esta es la configuración que a mí me funcionó para configurar el IDE Atom mediante un proxy corporativo:


apm config set https-proxy = "http://(usuario sin dominio):password@direcciónIPProxy:8080"

apm config set proxy = "http://(usuario sin dominio):password@direcciónIPProxy:8080"


apm config set strict-ssl false



Saludos.

MsiInv o cómo obtener información del software instalado en tu ordenador (en Windows)

Pues como dice el título, si quieres saber realmente qué software tienes instalado en tu computadora con el sistema operativo Windows, recom...