2012-01-09 22 views
5

Estoy intentando implementar mi primera aplicación MVC3 en un servidor que ejecuta IIS-7.5. Tengo todo funcionando, pero estoy teniendo problemas con mis métodos de depuración. Uso una construcción de depuración patentada que funciona bien cuando ejecuto la aplicación localmente (utilizando el módulo "IIS Express" incorporado y Visual Studio), pero cuando implemento en el servidor, ni siquiera creo mi archivo de depuración creado. mucho menos impreso a.ASP.NET MVC3 Debugging Application_Start

El archivo de depuración se crea en el evento Application_Start, así que puse un sello de registro de evento en el evento Application_Start y ejecuté la aplicación localmente y en el servidor, solo para ver si se desencadena el evento. Mis registros de eventos localmente fueron sellados según lo previsto, pero los registros de eventos en el servidor no tienen ningún sello nuevo. ¿Que está pasando aqui?

protected void Application_Start() 
    { 
    AreaRegistration.RegisterAllAreas(); 

//This is just some code that calls to another module I wrote to easily stamp to the Event logs - it works, trust me 
    EventLogging.Initialize(); 
    EventLogging.WriteEventLog("Application Start Called Successfully"); 
    } 
+0

por 'archivo de depuración' ¿está hablando de entradas de registro de eventos (que requerirían permisos en el registro de eventos desde la identidad de su grupo de aplicaciones) en lugar de un archivo físico? –

+0

@AdamTuliper Disculpe la ambigüedad: "archivo de depuración", en la frase anterior, se refiere a un archivo físico. Sin embargo, no puedo escribir ni en el archivo físico ni en los registros de eventos. Permítanme intentar agregar mi Pool de Identidad de Aplicación directamente a los Permisos de Registro de Eventos ... –

+0

@AdamTuliper Ok, agregué la Identidad de AppPool a la ACL para los EventLogs directamente en el editor de registro - todavía nada ... = (Quizás tengo un problema más básico? :: suspiro :: –

Respuesta

1

IIS 7.5 utiliza cuentas virtuales para los grupos de aplicaciones.

Ver App Pool Identities. Asegúrese de que la identidad específica del grupo de aplicaciones tenga acceso a la carpeta apropiada para leer/escribir.

+0

¡Eso es bastante interesante!Pude agregar la identidad de mi grupo de aplicaciones a la lista de permisos (ACL), pero aún no hay ningún archivo. No sé cómo cambiar los permisos en los registros de eventos para que esta cuenta pueda escribirles. Creo que cualquier cuenta debería poder hacer eso ... –

+0

Actualización: Pude agregar mi Identidad de AppPool al Event Logs permite la ACL a través del editor de registro, pero aún nada. –

+0

Eche un vistazo a http://stackoverflow.com/questions/6351608/application-start-not-behaving-correctly-in-asp-net-4-0-application. El cartel afirma que su registro funciona en todas partes, excepto en el inicio de la aplicación. ¿Es lo mismo para usted? – CtrlDot

2

Creo que el problema con el que se está encontrando es que el proceso de IIS se ejecuta bajo la cuenta de servicio de red. De forma predeterminada, esta cuenta solo tiene permisos de lectura y ejecución en la carpeta raíz de IIS. Por lo tanto, cualquier intento de escribir en el sistema de archivos local fallará.

Para que esto funcione, deberá dar acceso de escritura explícita a la cuenta del Servicio de Red al archivo en cuestión. Esto se puede hacer a través de Windows Explorer.

  • clic derecho sobre el archivo y seleccione Propiedades
  • Ir a la pestaña de seguridad
  • Añadir acceso de escritura para la cuenta servicio de red
+0

He agregado el servicio de red a la lista de valores para la carpeta principal del sitio web y se propaga Permisos para todos los objetos secundarios: sin dados. = ( –

+0

@ C.Barlow, ¿ha revisado el registro de eventos o ha adjuntado un depurador? Parece que algo está sucediendo, entonces – JaredPar

+0

Los registros de eventos no muestran nada. Desafortunadamente, dado que este evento es lo primero que se dispara, No sé cómo adjuntar un depurador antes de que se ejecute ... –