HTTP Error 503 El servicio no está disponible. El grupo de aplicaciones se detiene al acceder al sitio web

167

Hay varias publicaciones sobre esto y hasta ahora he probado muchas cosas. Pero fue en vano. Yo, básicamente, un desarrollador de Winforms, comencé a trabajar en este material web hace unos días, ya que mi empresa está tomando iniciativas web.

Tengo un proyecto ASP.Net y quiero alojarlo en IIS local. En la Project properties -> Webconfiguración elegí Use Local IIS Servery di una url como localhost/MyApp. Intenté acceder a él en mi navegador Firefox y recibí un error comoHTTP Error 503. The service is unavailable.

Anteriormente recibí muchos otros errores y los solucioné uno por uno. Pero golpeado con este. Estas son las configuraciones que tengo en mi proyecto

  1. Grupo de aplicaciones establecido en ASP.Net v4.0 Classic
  2. La Enable 32 bit Applicationpropiedad del grupo de aplicaciones es verdadera
  3. Se inicia el grupo de aplicaciones
  4. Propiedad de compilación del proyecto establecida Any CPUpara Marco de destino

Pero me gustaría mencionar un comportamiento extraño. Lo siguiente es algo que estoy enfrentando

  1. Se inicia el grupo de aplicaciones
  2. Intento acceder a mi sitio web local (dando url como localhost/MyApp)
  3. Recibo el error como HTTP Error 503. The service is unavailable
  4. El grupo de aplicaciones está detenido

He visto el siguiente enlace y ya lo he probado. Por el comportamiento anterior llegué aquí . De acuerdo con este enlace, el nombre de la computadora no debería tenerlo .. No tengo ninguno .en el nombre de mi computadora, pero sí lo tengo -. También mi nombre de dominio contiene .. Además, no puedo cambiar esta configuración, ya que es la computadora portátil de mi oficina y nuestra configuración de TFS está vinculada a nuestros nombres de dominio y computadora.

¿Alguien puede ayudarme a entender qué está pasando? Por favor guíame. Gracias.

Editar

Tengo el siguiente código en Global.asax. Application_BeginRequestEl método está vacío en el mismo archivo.

protected override void Application_Start(object sender, EventArgs e)
{
    base.Application_Start(sender, e);
    String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";",
                                         System.Environment.GetEnvironmentVariable("PATH"));
    System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    MyAppLog.Initialize();
    MyAppLog.WriteMessage("Application Started");
}

Actualizar

Según las sugerencias en Comentario, puedo ejecutar el sitio web desde Cassini.

Arenoso
fuente
¿Tiene algún código en su Global.asax que se ejecuta al iniciar la aplicación? ¿Algo que pueda estar atascado en un bucle? ¿Habilitó Enable 32 bit Applicationpero está utilizando alguna DLL de solo 32 bits?
CodingIntrigue
¿Qué sucede cuando lo ejecutas en Cassini?
Simon Whitehead
@RGraham: Tengo la propiedad de compilación del proyecto establecida en Any CPU. Así que creo que los dlls usados ​​no deberían ser un problema. Consulte la edición del código Global.asax. Gracias
Sandy
@SimonWhitehead: No tengo idea de qué es Cassini. Lo descargué ahora de cassinidev.codeplex.com . Puedo ver algunos dlls y exe en los archivos descargados. ¿Podrías ayudarme a usarlo? Mientras tanto, intentaré leer sobre este tema de fuentes de Internet.
Sandy
@SimonWhitehead: Puedo ejecutar el sitio web desde Cassini.
Sandy

Respuestas:

315

Una posible razón por la que esto puede suceder es que el grupo de aplicaciones en IIS está configurado para ejecutarse en alguna cuenta personalizada y esta cuenta no existe o se ha proporcionado una contraseña incorrecta o se ha cambiado la contraseña. Mire las propiedades avanzadas del grupo de aplicaciones en IIS para la cuenta que usa.

Además, el registro de eventos puede contener más información sobre por qué el grupo de aplicaciones se detiene inmediatamente en la primera solicitud.

ingrese la descripción de la imagen aquí

Darin Dimitrov
fuente
38
En mi caso, este era el problema. Había cambiado mi contraseña de Windows y mi IIS local para Windows 8.1 dejó de funcionar. Tuve que actualizar cada proyecto en varios lugares. En IIS 8, tuve que actualizar las credenciales en el grupo de aplicaciones haciendo clic derecho en el grupo y haciendo clic en "Configuración avanzada -> Modelo de proceso -> Identidad". Luego tuve que actualizar el sitio mismo yendo a "Sitios -> MySITE -> Configuración avanzada -> Credenciales de ruta física"
teynon
44
Incluso si la cuenta existe y la contraseña es correcta, es posible que se haya deshabilitado; Esto causaría los mismos síntomas.
Wolfgang
2
Sí, esa es la solución. La contraseña de mi cuenta se cambia muy a menudo. Y olvidé dar la nueva contraseña en la "Configuración avanzada"
mihkov
2
comprobar el registro de eventos es el camino a seguir, siempre me ayudó en estos problemas, la última vez que revisé el registro de eventos y descubrí que es un error al cargar el rewrite.dll en iis, fui a los programas y características en el panel de control, reparó la instalación y todo volvió a la normalidad.
Amr Elgarhy
3
Tuvimos un cambio de contraseña reciente. Esta fue la solución. Para otros, vea la captura de pantalla aquí: i.imgur.com/rp8bnGy.png
AskYous
43

Ok, tengo otra solución para un caso específico: si usa WINDOWS 10 y lo actualizó recientemente (con el paquete de actualización de aniversario), debe seguir los pasos a continuación:

  1. Verifique su Windows Event Viewer- presione Win + R y escriba:, eventvwrluego presione ENTER.
  2. En el lado izquierdo, Windows Event Viewerhaga clic en Windows Logs-> Application.
  3. Ahora necesita encontrar algunos ERRORES para la fuente IIS-W3SVC-WPen la ventana central.
  4. Probablemente verá un mensaje como:

El Módulo DLL >> ruta a DLL << no se pudo cargar. Los datos son el error.

  1. Tienes que ir a Control Panel-> Program and Featuresy dependiendo de qué dll no se pueda cargar, necesitas reparar otro módulo:
    • para rewrite.dll: busque el módulo 2 de reescritura de URL de IIS y haga clic en Change->Repair
    • para aspnetcore.dll- encuentre Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... y haga clic en Change-> Repair.
  2. Reinicia tu computadora.
1_bug
fuente
Esta respuesta me ayudó a solucionar un problema similar. Se solucionó el error "Servicio no disponible" al eliminar Core 2.2 (la reparación por sí sola no se solucionó). arriba voto
Roberto
2
La respuesta aceptada no ayudó. Esto hizo ¡Gracias!
Abogado del Diablo
1
gran respuesta, el registro me mostró El módulo DLL C: \ Windows \ System32 \ inetsrv \ compdyn.dll no se pudo cargar. Los datos son el error. entonces instalo Dynamic Content Compression
Mehdi Daustany
Para mí, fue: The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error.así que instalé Select Server Side Incluye según esta sugerencia
David Refoua
14

Para mi situación, mi contraseña de inicio de sesión cambió, mientras que el grupo de aplicaciones todavía usa la anterior. Simplemente haga clic en "Configuración avanzada" de su grupo de aplicaciones y restablezca su "Identidad".

David
fuente
Estoy de acuerdo en que esto sucede con bastante frecuencia
Sandy
11

Estaba enfrentando el mismo problema y lo depuré usando los registros de eventos. Primero dijo que: "No se puede encontrar la descripción para el evento ID 5059 de la fuente Microsoft-Windows-WAS".

Luego encendí WAS usando funciones de activar / desactivar ventanas . Luego vi esto en eventvwr "Microsoft-Windows-DistributedCOM no se puede encontrar".

Finalmente me di por vencido y eliminé el grupo de aplicaciones (que solía dejar de acceder al sitio web) y lo volví a crear, tal como está. Esto resolvió el problema.

Tarun
fuente
Y si tiene un montón de sitios que hacen referencia al mismo grupo de aplicaciones, puede usar appcmd para actualizarlos por lotes : appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
drzaus
A mí también me funcionó. Al actualizar de 2008 a 2012, los grupos de aplicaciones no estaban del todo contentos.
Anthony Horne
6

Para cualquiera que venga aquí con Windows 10 y después de actualizarlos a la actualización de aniversario, consulte este enlace, me ayudó:

https://orcharddojo.net/blog/troubleshooting-iis-apppool-crashes-status-503-after-windows-10-anniversary-update

En caso de que el enlace se caiga: si su registro de eventos muestra que aspnetcore.dll, rewrite.dll (con mayor frecuencia, pero también podrían ser otros) no se pudo cargar, debe reparar los elementos que faltan.

Aquí hay dos problemas específicos que hemos experimentado hasta ahora y cómo solucionarlos, pero puede toparse con otros completamente diferentes:

"C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
"C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...".
Zoran P.
fuente
6

La mayoría de las veces, se produjo debido a la configuración de AppPool.

Verifique lo siguiente para resolver esto

  1. Verifique que el servicio de Apppool se esté ejecutando.
  2. Verifique la identidad de AppPool.
  3. Ingrese la nueva contraseña si ha cambiado para esa identidad.

Las siguientes imágenes muestran esta configuración en IIS

ingrese la descripción de la imagen aquí

Hassan Nazeer
fuente
5

Si tiene McAfee HIPS y ve el siguiente error en el registro de la aplicación del visor de eventos:

El Módulo DLL C: \ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll no se pudo cargar.
Los datos son el error.

Luego, lo siguiente resolvió el problema en mi caso: https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST

Cita de la página:

  1. Haga clic en Inicio, Ejecutar, escriba explorer y haga clic en Aceptar.
  2. Navegue a:% windir% \ system32 \ inetsrv \ config
  3. Abra el archivo applicationHost.config como Administrador para editar en el Bloc de notas.
  4. Edite la sección <globalModules> y elimine la siguiente línea:
    <add name = "MfeEngine" image = "% windir% \ System32 \ inetsrv \ HipIISEngineStub.dll" />

  5. Edite la sección <modules> y elimine la siguiente línea:
    <add name = "MfeEngine" />

  6. Una vez que haya terminado de editar el archivo applicationHost.config, guarde el archivo, luego reinicie el servidor IIS usando iisreset o reinicie el sistema.
Orhan Celik
fuente
5

En mi caso, verifiqué los registros de eventos y encontré que el error era No se puede leer el archivo de configuración 'tratando de leer los datos de configuración del archivo' \\? \ ', Número de línea' 0 '. El campo de datos contiene el código de error.

El código de error fue 2307.

Eliminé todos los archivos en C: \ inetpub \ temp \ appPools y reinicié el iis. Se solucionó el problema.

Abhishek Agrawal
fuente
4

Tuve un problema similar Lo resolví agregando mi usuario a la política "Iniciar sesión como trabajo por lotes" en "Política de seguridad local"> "Políticas locales"> "Asignación de derechos de usuario".

thd
fuente
4

La primera vez que agregué el servicio y creé el grupo de aplicaciones para él. Hice "iisreset" desde el símbolo del sistema, y ​​funcionó.

Kale Swapnil
fuente
3

Si puede ejecutar el sitio web en el depurador de Visual Studio, entonces podría ver en qué parte del código se bloquea el grupo de aplicaciones. En mi caso, era una función que se llamaba recursivamente un número ilimitado de veces, y eso causaba un desbordamiento de la pila. Nota: el registro de eventos de Windows y los registros de IIS no fueron útiles para diagnosticar el problema.

humbads
fuente
3

Tuve el mismo problema con iis 8.5. Después de buscar el EventViewer en Windows Logs -> aplicaciones, me di cuenta de que tengo un error de permiso para el archivo machine.config del marco .net ubicado en "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config ". Darle un permiso para IIS_IUSRS resolvió mi problema (haga clic derecho en el archivo -> propiedades -> seguridad -> editar -> agregar -> IIS_IUSRS)

Dror T
fuente
3

Estaba experimentando este error y en mi caso la causa fue que hace algún tiempo modifiqué la contraseña del usuario, y el error 503 no apareció hasta que reinicié el grupo de aplicaciones.

Así que lo arreglé configurando la nueva contraseña en Grupos de aplicaciones / Configuración avanzada / Identidad / [...] / Establecer ... / Contraseña / Confirmar contraseña

Miquel
fuente
2

Tuve un problema similar, todos mis grupos de aplicaciones se detenían cada vez que se les hacía una solicitud web. Aunque recibía el siguiente error en el Visor de eventos:

El proceso de trabajo para el grupo de aplicaciones 'appPoolName' encontró un error 'El archivo de configuración no está bien formado XML' al intentar leer los datos de configuración del archivo '\? \ C: \ inetpub \ temp \ apppools \ appPoolName \ appPoolName.config', línea numero 3'. El campo de datos contiene el código de error.

Lo que me dijo que había errores en la aplicación.config en:

C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config

En mi escenario, edité el web.config en la implementación con un elemento que claramente no le gusta a IIS, la aplicación Host.config raspó el web.config e insertó este elemento defectuoso y no se resolvió hasta que lo elimine manualmente

ShaneC
fuente
"un elemento IIS claramente no le gusta" ¿cuál es ese elemento específico que ha mencionado?
Akhil
Hice esta publicación hace más de 4 años. No estoy seguro de qué elemento estaba en web.config, pero ese no es el punto. El problema del grupo de aplicaciones que describe el OP me estaba sucediendo y estaba recibiendo estos mensajes de error inútiles. La causa de lo anterior fue que había introducido una entrada incorrecta en el sitio web.config de mi sitio. (tal vez con un error de ortografía o error de sintaxis o una sección que IIS no reconoció como válida)
ShaneC
2

Además de los pasos descritos en este enlace de la respuesta de Orhan , es posible que deba eliminar adicionalmente el módulo nativo yendo al Administrador IIS> Raíz del servidor> Módulos> Configurar módulos nativos. Seleccione MfeEngine y luego seleccione Eliminar.

Dantheman
fuente
2

Cambiar "Modo de canalización administrado" de "Clásico" a "Integrado" funcionó para mí. Se puede cambiar en Grupos de aplicaciones -> Configuración básica

MartinS
fuente
Esto solucionó mi problema que apareció después de aplicar la siguiente KB de Windows a nuestro servidor de Windows 2008 R2 con IIS 7.5. ### 2019-07 Paquete acumulativo de seguridad y calidad para .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 para Windows 7 y Server 2008 R2 para x64 (KB4507420) Más información: support.microsoft.com/kb/4507420 ###
phanf
1

Sólo para añadir a estas Anniversary Updatecuestiones (gracias Microsoft) si el archivo se echa en falta es cgi.dll, por ejemplo, su Event Viewercuenta

The Module DLL C:\WINDOWS\System32\inetsrv\cgi.dll failed to load.  The data is the error.

Entonces para arreglar esto:

  1. Ir IIS Manager
  2. Seleccione la fila superior en el Connectionspanel (generalmente el nombre de su PC)
  3. En la parte inferior del panel derecho, debajo Management, debería tenerWeb Platform Installer
  4. Una vez que se carga, seleccione Products
  5. En la búsqueda escriba y cgiluego presione<Enter>
  6. Seleccione y IIS: CGIluego haga clic Adda la derecha y finalmente Installen la parte inferior
  7. Después de instalarlo, debería forzarlo a reiniciar su PC y debería estar reparado.
Serj Sagan
fuente
1
La mía fue la "Reescritura de URL" que desinstalé y luego reinstalé. Porque recibí este error: "El módulo DLL C: \ WINDOWS \ system32 \ inetsrv \ rewrite.dll no se pudo cargar. Los datos son el error".
Gwasshoppa