我们正在将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服务器上编译页面时是否会发生此错误?