10

J'ai écrit 3 applications Web ASP.net MVC et toutes sont déployées sur des serveurs d'hébergement partagés avec mon FAI.log4net lançant une exception de sécurité dans l'application Web ASP.Net MVC

Les 3 applications sont très similaires en termes de configuration et de paramètres. La 1ère application est déployée sur un serveur différent des 2ème et 3ème. La 1ère application ne me donne aucune erreur.

Les 2e et 3e applications crachent les suivantes SecurityExceptionun peu: au hasard:

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

Link

Exception Texte:

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 

Je reçois l'erreur ci-dessus la première fois que je clique sur la page après le déploiement ou la modification de web.config. Cependant, sur les rechargements de pages suivants, je ne comprends pas. Les deux sites seront bien pour le reste de la journée, mais le lendemain matin, je reçois la même erreur.

Les erreurs apparaissent-elles systématiquement après avoir modifié le fichier web.config, ce qui, à mon avis, entraîne une recompilation?

Aidez-nous s'il vous plaît. Je ne suis pas sûr du problème. Cela ressemble à des paramètres de sécurité dans IIS. Les 3 applications Web sont configurées et déployées de manière très similaire, sauf que la première application web qui ne donne pas l'erreur est sur un serveur complètement différent.

Répondre

20

Il se trouve que la raison de l'SecurityException ci-dessus est 3 fois

  • mon fournisseur d'accès a ASP.net configuré pour fonctionner en en mode confiance moyenne sur c'est des serveurs plus récents, et pleine confiance sur ses anciens serveurs. Mes applications Web sont partagés entre ces 2 serveurs, ce qui est la raison pour laquelle je reçois un comportement différent entre les applications, même si elles sont configurées de la même

  • J'utilise log4net pour la journalisation des erreurs, et dans mon Global.asax fichier, je donne les résultats suivants:

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

    Cette ligne - log4net.Config.XmlConfigurator.Configure(); est ce qui jette l'exception ci-dessus. Cela ne se produit qu'une seule fois lorsque l'application est démarrée ou redémarrée si elles sont modifiées. web.config C'est pourquoi je ne pouvais pas comprendre d'où venait le problème.

  • je dû ajouter un requirePermission = "false" au configSection log4net dans le web.config:

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

Maintenant, si je développais en mode confiance moyenne, I aurait ramassé ces problèmes. Vous pouvez forcer votre application à fonctionner en mode confiance moyenne en ajoutant ce qui suit à mon site Web.config:

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

En forçant mon application à fonctionner en mode confiance moyenne, je pris l'exception de source dev exactement où il est originaire, et compris ce qui était faux à partir de là ..

+3

pointe Excellent pour Définir le niveau de confiance sur Moyen, permettant ainsi le débogage sur la machine locale. Merci! – Adventure