MVC3 C# Web アプリケーションを新しいホスティング環境にデプロイしています。私たちが生まれた環境では、完全な信頼のアプリケーション レベルが許可されていました。新しいホスティング環境では中程度の信頼しか許可されていないため、アプリケーションは完全な信頼を必要とする呼び出しに対してセキュリティ エラーをスローしています。信頼の問題を回避できるように、問題のある呼び出しを見つけようとしてコードを見直してきましたが、特定のコード行を見つけることができませんでした。以下は、呼び出し元が非常に曖昧な例外です。
セキュリティ例外の
説明:アプリケーションは、セキュリティ ポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を付与するには、システム管理者に連絡するか、構成ファイルでアプリケーションの信頼レベルを変更してください。
例外の詳細: System.Security.SecurityException: タイプ 'System.Security.Permissions.FileIOPermission、mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求が失敗しました。
ソース エラー:現在の Web
要求
の実行中に未処理の例外が生成されました。
例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[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 サーバーでページがコンパイルされているときにこのエラーが発生しますか?