2008-11-07 5 views
2

Comment puis-je savoir ce qui cause réellement l'erreur suivante? La page est la même que les autres pages mais pour une raison quelconque, seule cette page a cette erreur. Cela n'arrive également que sur le FAI (GoDaddy) qui a un niveau de confiance moyen et je ne peux pas définir un point d'arrêt et essayer de l'attraper.Comment tracer une exception de sécurité ASP.NET

Server Error in '/' Application. 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.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 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.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] 
    System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 
    System.Security.CodeAccessPermission.Demand() +59 
    System.IO.Path.GetTempPath() +54 
    hh.a(Int32 A_0, Boolean A_1, Boolean A_2) +20 
    jg.b(c A_0, UInt64 A_1) +234 
    ei.b(c A_0, UInt64 A_1) +18 
    jg.a(c A_0, UInt64 A_1, Boolean A_2) +61 

Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433

Si vous avez eu ce problème ou tout simplement savoir comment je peux réparer ou tracer s'il vous plaît ajouter votre réponse. Le niveau de confiance de Medium est requis par le FAI.

Répondre

2

Avez-vous essayé d'utiliser une instance locale d'IIS et de définir le niveau de confiance sur moyen? Cela vous aidera à déboguer et à essayer les choses un peu plus vite.

(Et c'est une bonne habitude à prendre de toute façon.Vous voulez tester dans un environnement aussi proche de la production que possible.Et le serveur web VS a certainement quelques différences importantes que vous pouvez obtenir si vous ne testez pas dans IIS aussi.)

+0

Alors, comment baisser le niveau de confiance requis sur le site? Dites que j'utilise Db4o, ce qui me demande de charger un fichier dans le système de fichiers. –

+0

Pour IIS7, vous pouvez modifier le niveau de confiance dans le Gestionnaire des services Internet sous l'élément "Niveaux de confiance .NET" sur le serveur ou le site Web niveau. http://technet.microsoft.com/en-us/library/cc753658(WS.10).aspx –

+0

Je sais comment changer la confiance, mais que se passe-t-il si je l'abaisse et puis obtenir des erreurs. Où vais-je à partir de là? –

1

Je ne crois pas que GoDaddy supporte une confiance totale - bien que cela puisse avoir changé récemment. L'erreur est provoquée par l'appel System.IO.Path.GetTempPath, qui nécessite EnvironmentPermission.

La pile d'appels avant cela est obscurcie, donc je suppose que cela provient d'un fournisseur de composants. Recherchez une mise à jour ou un correctif pour leur confiance partielle ou remplacez-le.

+0

il y avait un composant DevExpress sur cette page mais je l'ai supprimé mais l'erreur n'a jamais été résolue. J'ai changé le web.config en espérant qu'il serait recompilé. Existe-t-il un autre moyen de forcer la page à compiler sur un hôte distant? Ma dernière option est de recréer la page n'ayant jamais ce composant et de voir ce qui se passe –

+0

Cela aurait dû provoquer une recompilation. Vérifiez que vous ne mettez pas également en cache la page. Si non, alors vous avez probablement encore l'erreur et ce n'était pas ce composant. –

0

La définition de points d'arrêt dans des assemblages obfusqués et non débogués est difficile. Cela ne vous mènera probablement nulle part.

Découvrez pourquoi le composant obfusqué tente d'accéder au chemin temporaire.

Questions connexes