web-dev-qa-db-ja.com

IIS7は最小限のアクセス許可要求を許可することに失敗しました

FileHelpers.dllを使用しているときにこのエラーが発生しますが、IISが完全信頼レベルに設定されているため、このようにすべきではありません

これが完全なスタックトレースです。

    [PolicyException: Required permissions cannot be acquired.]
       System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +10238142
       System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +97

    [FileLoadException: Could not load file or Assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
       System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
       System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +416
       System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +166
       System.Reflection.Assembly.Load(String assemblyString) +35
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190

    [ConfigurationErrorsException: Could not load file or Assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11207304
       System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +388
       System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +232
       System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +48
       System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +210
       System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +76
       System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +283
       System.Web.Compilation.BuildManager.CompileGlobalAsax() +50
       System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +676

    [HttpException (0x80004005): Could not load file or Assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
       System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +76
       System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +1012
       System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +1025

[HttpException (0x80004005): Could not load file or Assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11301302
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +88
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4338644
32
Omu

クリーンなWindows 7インストールで開発マシンを再構築したときにも、同様の問題が発生しました。探し回った後、自分に役立つ解決策を見つけました。

IISアプリケーションプールの詳細設定の[プロセスモデル]で、[ユーザープロファイルの読み込み]をtrueに設定します。

あなたの信頼レベルのようなチェックする他のいくつかのものがありますが、それらのどれも私に適用されませんでした(それはすべて私の開発マシンではすでに完全な信頼でした)。ユーザープロファイルを読み込むようにアプリケーションプールを設定すると、修正されました。

83
Pat James

Windows 2008 R2にも同様の問題があり、アプリケーションは64ビットモードで正常に動作しましたが、32ビットモードに切り替えると機能しなくなり、アクセス許可エラーがスローされます。IIS7の詳細設定>>プロセスモデル>> 「ID」設定はデフォルトで「アプリケーションプールID」に切り替えられており、32ビットモードで動作するように「ネットワークサービス」に変更する必要がある場合があります。

私たちはそれを行い、今ではスムーズにハミングしています。技術的にはフォルダのアクセス許可の問題であるため、この情報の一口がフォルダのアクセス許可を指摘する理由であると考えられます。ただし、変更はIISにあり、フォルダ自体のセキュリティ設定ではありませんでした。

2
Samuel Anderson

これは一般的なアセンブリの読み込みエラーではないようです。他のすべての投稿がエラーの考えられる原因のリストになったので、感謝します。

もう1つ見つかりました。私は上記のすべてを試しましたが、成功しませんでした。最終的に、ビルド構成が「デバッグ」のVisual Studios Express 2008からWebアプリケーションを公開していることに気付きました。ビルド構成を「リリース」に変更した後、Webアプリは機能しました。

詳細:Visual Studios Express 2008は、Win 2008 R2サーバー上のIIS7.5にファイルを移動します。

2
watch_amajigger

彼女が属する問題は、SharePointが信頼できないddlを使用して問題を解決します:

  1. iISを開く
  2. .net真のレベルをクリックしてください
  3. フル(内部)を選択しました
1
AMustafa

同様の問題があり、次の手順で問題を解決しました:

  1. IISに移動します。
  2. Webサイトフォルダーを右クリックして、アプリプールを確認します。
  3. アプリプールを右クリックして、詳細設定に移動します。
  4. プロセスモデルセクションでload user profiletrueに設定します
1