La aplicación ASP.NET 2.0 en IIS 5 produce un error (aspnet_wp.exe (PID: XXXX) se detuvo inesperadamente).

StackOverflow https://stackoverflow.com/questions/233478

Pregunta

Después de alojar una aplicación web ASP.NET 2.0 en un servidor Windows 2000 (IIS 5). No pude navegar por el sitio web.

Se mostró el siguiente mensaje de error en el navegador y se agregaron tres entradas del Registro de eventos ...

Mensaje de error en el navegador

  

Aplicación de servidor no disponible La aplicación web a la que está intentando acceder en este servidor web no está disponible actualmente. Presione el botón "Actualizar" botón en su navegador web para volver a intentar su solicitud.

Entradas del registro de eventos

  

Tipo de evento: Error
  Origen del evento: ASP.NET 2.0.50727.0
  Categoría del evento: Ninguna
  ID de evento: 1000
  Fecha: 24/10/2008
  Hora: 3:45:26 PM
  Usuario: N / A
  Ordenador: XXXXX
  Descripción: aspnet_wp.exe (PID: XXXX) se detuvo inesperadamente.

     

Tipo de evento: Error
  Origen del evento: ASP.NET 2.0.50727.0
  Categoría del evento: Ninguna
  ID de evento: 1088
  Fecha: 24/10/2008
  Hora: 3:45:26 PM
  Usuario: N / A
  Ordenador: XXXXX
  Descripción: Error al ejecutar la solicitud porque no se pudo crear el App-Domain. Error: 0x80070005 Acceso denegado.

     

Tipo de evento: Advertencia
  Origen del evento: ASP.NET 2.0.50727.0
  Categoría del evento: Ninguna
  ID de evento: 1073
  Fecha: 24/10/2008
  Hora: 3:45:26 PM
  Usuario: N / A
  Ordenador: WEBDEV
  Descripción: no se pudo inicializar el dominio de aplicación: / LM / W3SVC / 1 / Root / WebApplicationName
  Excepción: System.IO.FileLoadException
  Mensaje: No se pudo cargar el archivo o el ensamblado 'System.Web, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o una de sus dependencias. Acceso denegado.   StackTrace: en System.Reflection.Assembly.nLoad (AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark & ??amp; stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
     en System.Reflection.Assembly.InternalLoad (AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark & ??amp; stackMark, Boolean forIntrospection)
     en System.Reflection.Assembly.InternalLoad (String assemblyString, Evidence assemblySecurity, StackCrawlMark & ??amp; stackMark, Boolean forIntrospection)
     en System.Activator.CreateInstance (String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] ActivationAttributes, Evidence securityInfo, StackCrawlMark & ??amp; stackMark)
     en System.Activator.CreateInstance (String assemblyName, String typeName)
     en System.AppDomain.CreateInstance (String assemblyName, String typeName)
     en System.AppDomain.CreateInstance (String assemblyName, String typeName)
     en System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment (String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
     en System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors (String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

Cualquier idea ...

** Editar **

¿Y por qué se lanza System.IO.FileLoadException para acceder al ensamblado System.Web?

¿Fue útil?

Solución

Descubrí que cuando la carpeta del sitio web se copiaba en el servidor, heredaba los permisos de seguridad de la carpeta principal que solo tenía permiso para el Administrador, Administradores y amp; Cuentas del sistema.

agregué

  • IUSER_MACHINENAME (cuenta de invitado de Internet)
  • ASPNET (Cuenta de máquina ASP.NET)

Con Leer & amp; Ejecute , Mostrar contenido de la carpeta y Lea los permisos.

Aunque el problema se haya resuelto, todavía tengo algunas preguntas

Está claro en la tercera entrada del registro de eventos que ApplicationManager no puede crear el entorno de alojamiento que está en el ensamblado System.Web.

Dado que FileLoadException se lanza para System.Web, parece que el proceso de trabajo de ASP.NET no tiene acceso a la carpeta GAC.

¿Por qué se lanza la excepción FileLoadException para acceder a System.Web?

Otros consejos

Por lo que parece, tiene un conjunto de permisos incorrecto para su instalación de ASP.NET. Por lo general, la mejor opción es simplemente desinstalar y volver a instalar la parte de ASP.NET. Puede hacerlo fácilmente de la siguiente manera.

  1. Abra el símbolo del sistema en C: \ windows \ microsoft.net \ framework \ v2.0.50727
  2. ejecute el siguiente comando: aspnet_regiis.exe -u
  3. ejecute el siguiente comando: aspnet_regiis.exe -i

Eso desinstalará ASP.NET y se volverá a instalar, y luego debería establecer los permisos adecuados para la cuenta.

Este error significa que su código ha generado una excepción que ha bloqueado IIS o ha forzado su cierre. Las excepciones comunes que causan esto son OutOfMemoryException y StackOverflowException.

Está obteniendo una FileLoadException, pero podría haber una OutOfMemoryException subyacente o similar, que en realidad es la causa raíz de eso. Sin saber qué intenta cargar y el código que contiene, es imposible saber qué es lo que realmente está causando su problema.

Sin embargo, lo primero que haría para descartar un problema con el ensamblaje de carga es intentar reflexionar sobre él en un arnés de prueba y ver si ocurre el mismo problema. Si es así, entonces el problema está en la DLL que está intentando cargar, no en IIS.

Tuve el mismo problema y no desapareció con aspnet_regiis con -u y -i y muchos otros sugirieron aquí . Pero después de que limpié la carpeta "% windir% \ Microsoft.NET \ Framework \ v2.0.50727 \ Archivos temporales ASP.NET" y le di a esta carpeta permisos de lectura y escritura para el usuario desde la sección de suplantación de identidad en web.config, el problema desapareció. No fue suficiente otorgar a los usuarios locales de ASPNET esos derechos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top