visual studio net deploy code asp application c# asp.net iis-7.5 asp.net-core dnx

c# - studio - ASP.NET 5 Ocurrió un error al iniciar la aplicación



publish asp net core project to iis (4)

Este error también se produce cuando se intenta una conexión de la base de datos desde el inicio (por ejemplo, para el inicio) y falla en el servidor de implementación debido a insuficiencias previlejas en el servidor de la base de datos.

Después de publicar una aplicación web ASP.NET, intento alojar el sitio web en mi servidor local. Sin embargo, cuando lo inicio, me da este error en mi navegador:

Oops. 500 Error interno del servidor Se produjo un error al iniciar la aplicación.

¿Cómo puedo depurar qué es este error? El sitio web funciona (configuraciones de depuración y liberación) al comenzar a usar IISExpress y "web" en Visual Studio.

Estoy usando el entorno de desarrollo, y ya he especificado app.UseDeveloperExceptionPage(); .

He seguido las instrucciones aquí para implementar en IIS.

También probé la sugerencia que se ofrece aquí (se vuelve a publicar con "Eliminar todos los archivos existentes antes de publicar"). (El OP tiene un error ligeramente diferente, por eso estoy publicando una nueva pregunta).

He buscado durante horas en Internet, pero no parece haber mucho contenido al respecto. ¿Algunas ideas?

Estoy en Windows 7, usando ASP.NET 5 RC1.


Este error ocurre bajo varias condiciones. En mi situación, no tenía la cadena de conexión de la base de datos establecida correctamente. Lo arreglé en Visual Studio 2017 de la siguiente manera:

1) Haga clic derecho en el proyecto, seleccione Publicar, abra la página Publicar en el área principal.

2) Seleccione la pestaña Publicar a la izquierda

3) En la sección Resumen, hay un enlace "Configuración ...". Pinchalo. Esto abre el cuadro de diálogo Publicar.

4) Haz clic en la pestaña Configuración a la izquierda.

5) Expanda Opciones de publicación de archivos, marque "Eliminar archivos adicionales en el destino"

6) Expanda Bases de datos, marque "Usar esta cadena de conexión en el tiempo de ejecución" (esto fue rellenado previamente con mi cadena de conexión Azure SQL en función de cómo configuré originalmente mis opciones de publicación)

7) Amplíe Migraciones de Entity Framework, marque "Aplicar esta migración en publicación" (De nuevo, la cadena de conexión fue pre-poblada)

8) Haz clic en Guardar

9) Publicar

10) Cruza los dedos


Debe establecer stdoutLogEnabled=true en el archivo web.config para ver el error real que está sucediendo. Puede dirigir dónde se escriben estos archivos con el argumento stdoutLogFile ; el siguiente ejemplo de captura de pantalla escribe en stdoutLogFile="./logs/stdout" . (Debe asegurarse de que el directorio exista; la aplicación no lo creará)

En cuanto a no poder encontrar el archivo de configuración correcto, sí, el entorno predeterminado es producción. Está configurado para el desarrollo de forma explícita en Visual Studio en las propiedades del proyecto.

Actualización : en AspNetCore RTM, el módulo se llama aspnetCore en el nodo system.webServer en web.config. Además, como señaló @ErikE en los comentarios, web.config ahora se encuentra en la raíz del proyecto y no en wwwroot como en versiones anteriores.


El problema: lo más probable es que este error se deba a privilegios insuficientes para las Application Pool Identities del grupo de Application Pool Identities . Descubrir:

Vaya al Administrador de tareas de Windows y en la pestaña Detalles / Procesos (dependiendo del sistema operativo Windows) busque w3wp.exe y debajo de <App_Pool_Name> User name para su aplicación ( <App_Pool_Name> generalmente DefaultAppPool ) ejecutándose allí como un IIS Worker Process . Si su aplicación no figura en la lista, la aplicación no tiene privilegios suficientes en su base de datos.

Para solucionarlo: haga lo siguiente y dé acceso completo a su aplicación:

Vaya a SQL Server Management Studio e inicie sesión como administrador . Abra Seguridad > Ingresos > haga clic con el botón secundario en Inicios de sesión y agregue un New Login :

Debajo de General:

  • para Login Name: de Login Name: Ingrese la IIS APPPOOL/<App_Pool_Name> generalmente DefaultAppPool

  • para la Default Database: apunte a <Your_App_Database>

En Asignación de usuario :

  • en la casilla Users mapped to this login:

    - Marque la casilla para <Your_App_Database> a <Your_App_Database>

    -En virtud del usuario, introduzca la IIS APPPOOL/<App_Pool_Name> generalmente DefaultAppPool

    -En el esquema predeterminado Ingrese dbo

  • en el cuadro Database role membership for: de Database role membership for: <Your_App_Database>

    - Marque las siguientes casillas: db_datareader , db_datawriter y public

Click OK

¡Ahora intenta acceder a tu aplicación y debería funcionar!