web-dev-qa-db-ja.com

「見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません」

.NET WebAPIアプリ(.NET 4.5.2に対してコンパイルされ、ローカルで実行されている)をAzure App Serviceにデプロイしました。

そこにスローされたエラーがあります

ファイルまたはアセンブリ「System.Web.Mvc、Version = 4.0.40804.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。

AppサービスのbinディレクトリにあるSystem.Web.Mvc.dllのサイズが505504バイトであることを確認しました。これは、バージョン4.0.40804.0であるローカルのSystem.Web.Mvc.dllとまったく同じサイズです。 、2014-09-25を変更し、問題なくローカルで作業しています。私が言える唯一の違いは、Azureのように4.6.1ではなく、.NET 4.5.2がローカルにインストールされていることです。

私のWeb.configのエントリは

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="4.0.40804.0" />
  </dependentAssembly>

しかし、私はすでに試しました

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>

どちらも機能しません。

System.Web.Mvc.dllを見つけるには、アプリケーションのエントリを編集する必要がありますか?

参考までに、完全なエラーメッセージは次のとおりです。

「/」アプリケーションのサーバーエラー。

ファイルまたはアセンブリ「System.Web.Mvc」またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーの詳細とコードのどこで発生したかについては、スタックトレースを確認してください。

例外の詳細:System.IO.FileLoadException:ファイルまたはアセンブリ 'System.Web.Mvc'またはその依存関係の1つを読み込めませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

ソースエラー:

現在のWeb要求の実行中に、未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタックトレースを使用して特定できます。

アセンブリロードトレース:次の情報は、アセンブリ 'System.Web.Mvc'をロードできなかった理由を判断するのに役立ちます。

WRN:アセンブリバインディングログはオフになっています。アセンブリバインドエラーログを有効にするには、レジストリ値[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)を1に設定します。注:アセンブリバインドエラーログに関連するパフォーマンスの低下があります。この機能をオフにするには、レジストリ値[HKLM\Software\Microsoft\Fusion!EnableLog]を削除します。

スタックトレース:

[FileLoadException:ファイルまたはアセンブリ 'System.Web.Mvc'またはその依存関係の1つを読み込めませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)]

[FileLoadException:ファイルまたはアセンブリ 'System.Web.Mvc、Version = 4.0.40804.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark&stackMark、IntPtr pPrivHostBinder、Boolean throwOnFileNotFound、Boolean forIntrospectss。 .nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark&stackMark、IntPtr pPrivHostBinder、ブールthrowOnFileNotFound、ブールforIntrospection、ブールsuppressSecurityChecks) stackMark、IntPtr pPrivHostBinder、Boolean throwOnFileNotFound、Boolean forIntrospection、Boolean suppressSecurityChecks)+152 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackCrawlMark&stackMa rk、IntPtr pPrivHostBinder、Introspectionのブール値)+77 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackCrawlMark&stackMark、Boolean forIntrospection)+21 System.Reflection.Assembly.Load(String assemblyString)+28 System.Web.Configuration .CompilationSection.LoadAssemblyHelper(String assemblyName、Boolean starDirective)+38

[ConfigurationErrorsException:ファイルまたはアセンブリ「System.Web.Mvc、Version = 4.0.40804.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName、Boolean starDirective)+738 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()+217 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)+130 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+170 System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies()+92 System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath、Boolean&isRefAss290) System.Web.Compilation.BuildManager.ExecutePreAppStart()+157 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager、IApplicationHost appHost、IConfigMapPathFactory configMapPathFactory、HostingEnvironmentParameters hostingParameters、PolicyLevel policyLevel、Exception appDomainCreationException)+531

[HttpException(0x80004005):ファイルまたはアセンブリ 'System.Web.Mvc、Version = 4.0.40804.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9947380 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr、HttpContext context)+261

バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.6.1055.0

22
Alexander

[ツール]> [Nugetパッケージマネージャー]> [ソリューションのNuGetパッケージの管理](VS2015)で[アセンブリバージョン]を確認できます。ソリューションでプロジェクトで使用されているアセンブリのバージョンを確認し、単一バージョンを使用します。

34
Ashish Sharma