に従ってアップグレードしました。 http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5- and-web-api-2
私はエラーが出ます。他に誰かがこのエラーを出しましたか?
'/'アプリケーションでサーバーエラーが発生しました。
ファイルまたはアセンブリ 'System.Web.Http、バージョン= 4.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つをロードできませんでした。見つかった議会のマニフェスト定義が議会の参照と一致しません。 (HRESULTからの例外:0x80131040)
説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーとコードのどこで発生したかの詳細については、スタックトレースを確認してください。例外の詳細:System.IO.FileLoadException:ファイルまたはアセンブリ 'System.Web.Http、バージョン= 4.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35'、またはその依存関係の1つを読み込めませんでした。見つかった議会のマニフェスト定義が議会の参照と一致しません。 (HRESULTからの例外:0x80131040)
ソースエラー:
48行目:49行目:50行目:} 51行目:52行目:protected void Application_BeginRequest(オブジェクトセンダ、EventArgs e)
ソースファイル:d:\ SM\7.4テスト\ WebAPIServerV2\ThirdPartyWebAPI\Global.asax.cs行:50
アセンブリロードトレース:アセンブリ 'System.Web.Http、バージョン= 4.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35'をロードできなかった理由を特定するために、次の情報が役立ちます。
===プレバインド状態情報=== LOG:DisplayName = System.Web.Http、Version = 4.0.0.0、Culture =ニュートラル、PublicKeyToken = 31bf3856ad364e35(完全指定)LOG:Appbase = file:/// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG:初期PrivatePath = D:\ SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\bin呼び出し元アセンブリ:ThirdPartyWebAPI、バージョン= 1.0.0.0、カルチャ=ニュートラル、PublicKeyToken = null。 === LOG:このバインドはデフォルトのロードコンテキストで始まります。 LOG:アプリケーション構成ファイルを使用:D:\ SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\web.config LOG:ホスト構成ファイルを使用:C:\ Users\michalc\Documents\IISExpress\config\aspnet.config LOG:マシン構成を使用C:\ Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.configからのファイル。 LOG:ポリシー後の参照:System.Web.Http、バージョン= 4.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35ログ:新しいURLファイルのダウンロードを試行しています:/// C:/Windows/Microsoft.NET/Framework/v4 .0.30319 /一時的なASP.NETファイル/ root/9184b2ea/c6d4b139/System.Web.Http.DLL。 LOG:新しいURLファイルをダウンロードしようとしています:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/一時ASP.NETファイル/ root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http .DLL LOG:新しいURLファイルをダウンロードしようとしています:/// D:/SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL。 WRN:アセンブリ名を比較すると、不一致が発生しました。メジャーバージョンエラー:アセンブリのセットアップを完了できませんでした(hr = 0x80131040)。プロービングは終了しました。
スタックトレース:
[FileLoadException:ファイルまたはアセンブリ 'System.Web.Http、バージョン= 4.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35'、またはその依存関係の1つをロードできませんでした。見つかった議会のマニフェスト定義が議会の参照と一致しません。 (HRESULTからの例外:0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start()d:¥SM¥7.4Test¥WebAPIServerV2¥ThirdPartyWebAPI¥Global.asax.cs:50
[HttpException(0x80004005):ファイルまたはアセンブリ 'System.Web.Http、バージョン= 4.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35'またはその依存関係のいずれかを読み込めませんでした。見つかった議会のマニフェスト定義が議会の参照と一致しません。 (HRESULTからの例外:0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContextコンテキスト、HttpApplicationアプリ)+9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext、HttpContextコンテキスト、MethodInfo []ハンドラ)+118
System.Web.HttpApplication.InitSpecial(HttpApplicationState状態、MethodInfo []ハンドラ、IntPtr appContext、HttpContextコンテキスト)+172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext、HttpContextコンテキスト)+336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+296[HttpException(0x80004005):ファイルまたはアセンブリ 'System.Web.Http、バージョン= 4.0.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35'またはその依存関係のいずれかを読み込めませんでした。見つかった議会のマニフェスト定義が議会の参照と一致しません。 (HRESULTからの例外:0x80131040)]
System.Web.HttpRuntime.FirstRequestInit(HttpContextコンテキスト)+9913572 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContextコンテキスト)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRetext wr context、IIS 7WorkerRetext wr context、IIS 7 WorkerRetext 4)
バージョン情報:Microsoft .NET Frameworkのバージョン:4.0.30319。 ASP.NETバージョン:4.0.30319.18408
私はこれを NuGetパッケージの再インストール で修正しました。これは壊れた依存関係を修正します。パッケージマネージャから、以下を実行します。
Update-Package Microsoft.AspNet.WebApi -reinstall
ファイルまたはアセンブリの 'System.Web.Http'エラーをロードできないという問題を解決するには、NuGetを使用してWeb API 2.1 WebHostをインストールします。
ソリューションエクスプローラーで、参照を右クリックし、[nuget packagesの管理]を選択します。 (ない場合はnugetをインストールしてください)
左側のNuGetパッケージの管理ウィンドウでオンラインをクリックしてから右上にあるWebホストを検索し、Microsoft ASP.NET Web API 2.1 Webホストをインストールします。 (一度インストールするとインストールボタンが緑色のチェックに変わります)
その後、プロジェクトは再ロードされ、それが再びビルドされるとエラーは解決され、プロジェクトはデバッグされ実行されます。エラーがなくなり、 'リソースが見つかりません。 URLを追加するだけです(例:localhost:52088 /からlocalhost:52088api/productsへ)
あなたの質問はよく、私を助けました。
この回答がお役に立てば幸いです!
アセンブリリダイレクトを追加する必要があります。
<configuration>
....
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
...
</configuration>
たぶんあなたはウェブホスティングなどのようないくつかのより多くのアセンブリのためにこれをしなければなりません.
または、NuGet Package Managerコンソールからこれを実行できます。
Install-Package Microsoft.AspNet.WebApi -Version 5.0.0
そして、System.Web.Http.WebHost 5.0への参照を追加することができます。
Web Api 2.2をインストールしたときに、このエラーが発生し始めました。これをweb.configに追加したところ、問題が解決しました。
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
この問題を解決するための適切な解決策は、次の手順に従うことです。
。古いバージョンが15.5.4になっている場合は、Visual Studioを更新します(オプション)
Web.configからすべてのバインディングリダイレクトを削除する
これをcsprojファイルに追加します。
<PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup>
造りなさい。
Binフォルダーには(WebAppName).dll.config
ファイルがあるはずです。
リダイレクトがあるはずです。これらをweb.configにコピーしてください。
Csprojファイルから上記の断片をもう一度削除します。
うまくいくはずです
私にとっては、ローカルマシンではなく本番環境でこのエラーが発生した場合にのみクラッシュしました。それを解決したのは、/ binフォルダの内容を削除してから再生成することでした。
単なる明白だが可能な役に立つヒント....あなたがあなたのwebconfigアセンブリバインディングであなたが指定する新しいバージョンがあなたがあなたのプロジェクト参照で参照するものと同じバージョンであることを確認することを忘れないでください。 (すなわち、私がこれを書いているように...最近System.Web.HttpでNUGetをしたのであれば、これは5.1.0.0になります。
これは誰かに役立つかもしれません。
私はMVC4アプリで行くことにしました。
プロジェクトを実行し、動作しました
それからいくつかのパッケージをインストールしました、
Microsoft ASP.NET WEB API 2.2(4パッケージ)
Microsoft ASP.NET Web API 2.2ヘルプページ
Microsoft ASP.NET Web API 2.2 OWIN
プロジェクトを実行します。質問で述べたのと同じエラー
解決策:
web.config
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.0" />
</dependentAssembly>
問題が解決しました
しかし、その後、いくつかの ホットフィックス エラーが見つかりました。それを解決するには、MVC4プロジェクトの _ view _ フォルダに移動し、second
を見つけます。以下に示すように、web.config fileとバージョンを 2.0.0.0 から 3.0.0.0 に変更しました。
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
Installing NuGet package ASP.NET.MVC solved the issue for me.
To install package.
- Right click on project
- Select "Manage NuGet Packages"
- Select Online->Nuget.org from left menu
- select "Microsoft ASP.NET MVC"
- Click Install
If you have already installed package earlier, please update the package by selecting Updates from left menu and then selecting "Microsoft ASP.NET" and click Update.
私の場合は、web.config
が完全に欠落していました。これには適切なバインディングのリダイレクトが含まれていました。 web.config
を復元するとエラーが解決しました。
私は解決策を見つけました!プロジェクトディレクトリのpackageという名前のフォルダを削除してから、再構築して実行します。
私は何もしませんでした。開発用の Bin folder DLL をオンラインで展開した Bin フォルダにコピーしただけで問題ありません。
私はメインアプリケーションのapp.configにアセンブリ参照を追加することでSystem.Net.HTTPと同様の問題を解決することができました。
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.1" newVersion="4.0.0.0" />
</dependentAssembly></runtime>
はい!!!
Install-Package Microsoft.AspNet.WebApi -Version 5.0.0
それは私の場合うまくいきます.... thnkz
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
他の人が言っているように、単にnugetを使ってあなたのWebプロジェクトにMVCパッケージを再インストールするが、ユニットテストのようなWebプロジェクトに依存するどんなプロジェクトにもMVCパッケージを追加することを忘れないでください。含まれている各プロジェクトを個別にビルドする場合は、魔女のものにはアップデートが必要です。
発行機能を使用してAzureにデプロイすると、この問題が発生しました。宛先のファイルを消去することを忘れないでください。
Publish Settings -> File Publish Options drop down -> Check Remove additional files at destination
私がそうであったように人々がこれのために探し回る必要がある場合、これは私の問題を解決しました。私のプロジェクト/ソリューションではすべて同じバージョンでしたが、展開先ではありませんでした。
私は同じ問題を抱えていたし、パッケージを再インストールすると動作しません。
私のアプリケーションはLocalIIS(IIS EXPRESSではなく)で実行されます。 Assembly Load Traceを有効にして、load System.Web.Http loadを一時キャッチより下にします。 so すべてのcatchフォルダを削除する .
C:\ Windows\Microsoft.NET\Framework\v4.0.30319 \一時的なASP.NETファイル[私のアプリケーション]
nuget
を実行した後にnugetが私のweb.config
に加えた変更を元に戻すことでこの問題を解決しました。変更を以前の作業バージョンに戻します。
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
1つのソリューションで複数のプロジェクトを使用で、あるプロジェクト内のmethodを別のプロジェクトに呼び出す場合は、必ずすべてのプロジェクト(projectおよびcallerプロジェクトと呼ばれます)固有の'System.Net.Http'
バージョンを使用を使用してください。
私はWCFサービスからこれを受けました。私にとっては(問題はローカルのdevで表示されていたので)、私は単にソリューションの下のbinフォルダの内容を削除しなければなりませんでした。再構築はもう一度うまくいきます。
私にとっての問題を解決したのは、 Microsoft ASP.NET Web API 2.2ヘルプページ およびMicrosoft ASP.NET Web API 2.2 OWIN パッケージを再インストールすることでした。両方を同時に再インストールしたのですが、問題が解決したのは前者だと思います。
ここで提供されている解決策のうち最初のいくつかを試してみましたが、それでも解決しませんでした。それから私の依存関係を(Pluralsightのコースから)うまくいったプロジェクトのものと比較しました。だから私はそれらを5.2.3に更新し、それは働き始めました。
System.Web.Http.WebHost、Version = 5.2.6.0が参照されているのと同じ問題がありましたが、最新のNuGetパッケージは5.2.7.0でした。 web.configファイルを編集し、NuGetパッケージを再インストールし、すべてのプロジェクトのVisual Studioプロジェクトファイルを編集して、5.2.6.0への参照が保持されないようにしました。このすべての後でも、問題は持続しました。
次に、例外をスローしているプロジェクトのbinフォルダーを調べました。ここでは、依存関係ではなく、存在するはずのない他のプロジェクトのDLLを見つけました。問題のあるDLL(System.Web.Http.WebHostの5.2.6.0バージョンを使用してコンパイルされていた)を削除し、面倒なプロジェクトを再構築しましたが、現在は機能しています。
私は同様の問題を抱えていました。以前はすべてうまくいっていました。それはもともとWebフォームを使用して作成され、後で追加のWeb APIを使用して作成されたものもあります。
Visual Studioでは、パブリッシュプロファイル設定をReleaseからDebugに変更しました。奇妙だが、それがうまくいった。ここで共有しています。
ASP.NETバージョン:4.0.30319.18408は.Net4.5に属し、System.Web.Httpバージョン= 4.0.0.0は.NET4.0と互換性があります。だからあなたが持っているバージョンは互換性がありません。 System.Web.Httpを.Net4.5と互換性のあるバージョン5.0.0.0に更新する必要があります。
参照内のdllについて、Specific versionフラグをtrueからfalseに変更します。