10

He escrito 3 aplicaciones web ASP.NET MVC, y todas están implementadas en servidores de alojamiento compartido con mi ISP.log4net throwing Excepción de seguridad en la aplicación web ASP.Net MVC

Las 3 aplicaciones son muy similares en configuración y configuraciones. La primera aplicación se implementa en un servidor diferente al segundo y al tercero. La primera aplicación no me da ningún error.

la 2ª y 3ª aplicaciones escupir el siguiente SecurityException un tanto: al azar:

alt text http://i46.tinypic.com/24p9pac.jpg

Link

excepción de texto:

Security Exception 
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.] 
    System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 
    System.Security.CodeAccessPermission.Demand() +58 
    System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) +99 


Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3082 

Recibo el error anterior la primera vez que toco la página después de implementar o editar el archivo web.config. Sin embargo, en las siguientes recargas de página no lo entiendo. Los 2 sitios web estarán bien nuevamente durante el resto del día, pero a la mañana siguiente vuelvo a tener el mismo error.

Los errores aparecen constantemente después de editar el archivo web.config, que supongo que forzará una recompilación?

Por favor ayuda. No estoy seguro de cuál es el problema. Parece que está relacionado con la configuración de seguridad en IIS. Las 3 aplicaciones web están configuradas e implementadas de una manera muy similar, excepto que la primera aplicación web que no da el error se encuentra en un servidor completamente diferente.

Respuesta

20

Así resulta que la razón de la SecurityException anterior es de 3 veces

  • mi ISP ha ASP.net configurado para funcionar en de confianza medio el modo en que es más nuevos servidores, y plena confianza modo en sus servidores anteriores. Mis aplicaciones Web se dividen entre estos 2 servidores, por lo que estoy recibiendo un comportamiento diferente entre las aplicaciones a pesar de que están configurados exactamente el mismo

  • estoy usando log4net para el registro de errores, y en mi Global.asax archivo, tengo el siguiente:

    protected void Application_Start() 
    { 
        RegisterRoutes(RouteTable.Routes); 
        log4net.Config.XmlConfigurator.Configure(); 
        log.Debug("Logging Initialized."); 
    } 
    

    Esta línea - log4net.Config.XmlConfigurator.Configure(); es lo que está lanzando la excepción anteriormente. Solo ocurre una vez cuando se inicia la aplicación, o se reinicia si se modifican web.config. Es por eso que no pude entender de dónde venía el problema.

  • he tenido que añadir un requirePermission = "false" a la configSection log4net en el web.config :

    <section name="log4net" requirePermission="false" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    

Ahora bien, si yo estaba desarrollando en el modo de confianza medio, me habría elegido estos problemas. Puede obligar a su aplicación a ejecutar en modo de confianza medio agregando lo siguiente a mi web.config:

<system.web> 
    <trust level="Medium"/> 
    </system.web> 

Al forzar mi aplicación se ejecute en modo de confianza medio, cogí la excepción fuente en dev exactamente donde se originó, y la cuenta de lo que estaba mal de ahí en adelante ..

+3

Excelente consejo para establecer el nivel de confianza en Medio, lo que permite la depuración en la máquina local. ¡Gracias! – Adventure

Cuestiones relacionadas