如何在中等信任环境中识别违规的完全信任的asp.net代码

时间:2013-01-02 03:28:50

标签: c# asp.net

我们正在将MVC3 C#Web应用程序部署到新的托管环境中。我们来自的环境允许完全信任应用程序级别。新的托管环境只允许中等信任,因此我们的应用程序现在为需要完全信任的呼叫抛出安全错误。我们一直在审查我们的代码,试图查找有问题的调用,以便我们可以解决信任问题,但在查找特定的代码行时却没有成功。以下是我们得到的例外情况,它对电话的来源非常模糊:

安全例外

描述:应用程序尝试执行安全策略不允许的操作。要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别。

异常详细信息: System.Security.SecurityException:请求类型'System.Security.Permissions.FileIOPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败。

来源错误:
在执行当前网络期间生成了未处理的异常 请求。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[SecurityException: Request for the permission of type
'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0,      
Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark&  
stackMark,      
Boolean isPermSet) +0
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap,
StackCrawlMark&  
stackMark) +31
System.Security.CodeAccessPermission.Demand() +46
System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, 
Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options,
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath,
Boolean checkHost) +654
System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare
share) +65
System.Configuration.Internal.InternalConfigHost.StaticOpenStreamForRead(String  
streamName) +85
System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.
IInternalCon    figHost.OpenStreamForRead(String streamName, Boolean assertPermissions)    
+116
System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.
IInternalCon figHost.OpenStreamForRead(String streamName) +10
System.Configuration.Internal.DelegatingConfigHost.OpenStreamForRead(String streamName)
+11
System.Configuration.UpdateConfigHost.OpenStreamForRead(String streamName) +38
System.Configuration.BaseConfigurationRecord.InitConfigFromFile() +319

我们想知道是否有人可以就如何追踪此安全级别错误提供一些见解。是否有任何类型的应用程序或插件可以帮助我们确定问题的位置?第二,任何人都可以了解何时抛出这些异常?是否必须调用违规代码才能抛出异常,或者在Web服务器上编译页面时是否会发生此错误?

0 个答案:

没有答案