如何跟踪ASP.NET安全例外

时间:2008-11-07 22:08:58

标签: asp.net security debugging hosting

如何确定实际导致以下错误的原因?该页面与其他页面相同,但由于某种原因,只有此页面出现此错误。它也只发生在信任级别为中等的ISP(GoDaddy)上,我无法设置断点并尝试捕获它。

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.

来源错误:

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

如果您遇到此问题或只是知道如何修复或追踪它,请添加您的答案。 ISP要求信任级别为中等。

3 个答案:

答案 0 :(得分:2)

您是否尝试过使用IIS的本地实例并将信任级别设置为中等?这将有助于您调试和尝试更快一点。

(无论如何都是一个很好的习惯。你想在尽可能接近生产的环境中进行测试。如果不进行测试,VS网络服务器肯定会有一些重要的区别可以帮助你IIS也是。)

答案 1 :(得分:1)

我不相信GoDaddy支持完全信任 - 尽管最近可能已经改变了。该错误是由System.IO.Path.GetTempPath调用引起的,该调用需要EnvironmentPermission

之前的调用堆栈是混淆的,所以我的猜测是来自组件供应商。检查更新或修复部分信任,或替换它。

答案 2 :(得分:0)

在模糊处理的非调试程序集中设置断点很难。它可能会导致你无处可去。

找出混淆组件试图访问临时路径的原因。