199

に従ってアップグレードを行いました。 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、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.IO.FileLoadException: ファイルまたはアセンブリ 'System.Web.Http、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

ソース エラー:

48行目: 49行目: 50行目: } 51行目: 52行目: protected void Application_BeginRequest(object sender, EventArgs e)

ソース ファイル: d:\SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\Global.asax.cs 行: 50

アセンブリ ロード トレース: 次の情報は、アセンブリ 'System.Web.Http、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' を読み込めなかった理由を特定するのに役立ちます。

=== バインド前の状態情報 === LOG: DisplayName = System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (完全指定) LOG: Appbase = file:///D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: Initial PrivatePath = D:\SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\bin アセンブリの呼び出し: ThirdPartyWebAPI、バージョン = 1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null。=== ログ: このバインドは、デフォルトのロード コンテキストで開始されます。ログ: アプリケーション構成ファイルの使用: D:\SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\web.config ログ: ホスト構成ファイルの使用: C:\Users\michalc\Documents\IISExpress\config\aspnet.config ログ: マシン構成の使用C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config からのファイル。LOG: ポリシー後の参照: System.Web.Http、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35 ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http .DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///D:/SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL。WRN: アセンブリ名を比較すると、不一致が発生しました: メジャー バージョン ERR: アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http.DLL . ログ: 新しい URL ファイルのダウンロードを試みています:///D:/SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL。WRN: アセンブリ名を比較すると、不一致が発生しました: メジャー バージョン ERR: アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http.DLL . ログ: 新しい URL ファイルのダウンロードを試みています:///D:/SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL。WRN: アセンブリ名を比較すると、不一致が発生しました: メジャー バージョン ERR: アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。

スタックトレース:

[FileLoadException: ファイルまたはアセンブリ 'System.Web.Http、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)] d:\SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\Global.asax.cs:50 の ThirdPartyWebAPI.WebApiApplication.Application_Start()

[HttpException (0x80004005): ファイルまたはアセンブリ 'System.Web.Http、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(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、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext コンテキスト) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext コンテキスト) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr、HttpContext コンテキスト) +254


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

4

29 に答える 29

303

NuGet パッケージを再インストールすることでこれを修正しました。これにより、壊れた依存関係が修正されます。パッケージ マネージャーから、次を実行します。

Update-Package Microsoft.AspNet.WebApi -reinstall
于 2014-03-07T20:31:40.637 に答える
85

ファイルまたはアセンブリ 'System.Web.Http' を読み込めませんでしたエラーを解決するには、NuGet を使用して Web API 2.1 WebHost をインストールします。

参照のソリューション エクスプローラーで右クリックし、[ナゲット パッケージの管理] を選択します。(ない場合はnugetをインストールしてください)

ここに画像の説明を入力

左側の [NuGet パッケージの管理] ウィンドウで [オンライン] をクリックし、右上で Web ホストを検索して、Microsoft ASP.NET Web API 2.1 Web ホストをインストールします。(インストールが完了すると、インストール ボタンが緑色のチェックに変わります)

その後、プロジェクトがリロードされ、再度ビルドされるとエラーが解決され、プロジェクトがデバッグおよび実行されます。エラーはなくなり、「リソースが見つかりません。URL を追加するだけです (例: localhost:52088/ から localhost:52088api/products へ)。

あなたの質問は素晴らしく、私を助けてくれました。

この回答がお役に立てば幸いです。

于 2014-03-13T20:45:02.130 に答える
63

アセンブリ リダイレクトを追加する必要があります。

<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>

ほとんどの場合、Web ホスティングなどのいくつかのアセンブリに対してこれを行う必要があります。

于 2013-10-21T11:10:55.733 に答える
18

または、NuGet パッケージ マネージャー コンソールからこれを行うことができます

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

そして、System.Web.Http.WebHost 5.0 への参照を追加できるようになります。

于 2013-12-17T19:49:29.983 に答える
17

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>
于 2014-09-16T22:59:00.833 に答える
4

Copy Local = true不足しているアセンブリを設定するだけで、うまくいきました。これはもちろん、欠落している参照 (エラー メッセージに記載されている) を右クリックしてプロパティを選択することで発生します。以下のように:

ここに画像の説明を入力

問題の原因となっているアセンブリが複数ある可能性があるため、これで1つの問題が解決するはずです。私がしたことは、すべてのアセンブリを選択して右クリックしたことです。選択されたプロパティ; それらをすべて Copy Local = true; に設定します。そして再発行。

于 2016-07-04T13:45:25.007 に答える
2

明白だが役立つ可能性のあるヒント....webconfigアセンブリバインディングで指定した新しいバージョンが、プロジェクト参照で参照しているバージョンと同じであることを確認してください。(つまり、これを書いているとき...最近 System.Web.Http で NUGet を実行した場合、これは 5.1.0.0 になります。

于 2014-02-17T15:31:28.900 に答える
0

私は同じ問題を抱えていて、パッケージを再インストールしてもうまくいきません。

私のアプリケーションは (IIS EXPRESS ではなく) LocalIIS で実行されます。Assembly Load Trace を有効にすると、System.Web.Httpを一時キャッチの下からロードする必要があることがわかりました。その中のすべてのキャッチフォルダーを削除します

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files[マイ アプリケーション]

于 2015-03-16T08:49:19.607 に答える
0

問題を解決したのは、 Microsoft ASP.NET Web API 2.2 ヘルプ ページと Microsoft ASP.NET Web API 2.2 OWINパッケージを再インストールすることでした。両方を同時に再インストールしましたが、問題を修正したのは前者だったと思います。

ここで提供されているソリューションの最初のいくつかを試しましたが、それは役に立ちませんでした。次に、依存関係を (Pluralsight のコースから) 機能したプロジェクトの依存関係と比較しました。上記の 2 つの依存関係は下位バージョン (5.0.0) でした。 ) 5.2.3 に更新したところ、動作し始めました。

于 2015-12-30T20:15:24.710 に答える
0

web.config実行後にnugetが行った変更を元に戻すことで、この問題を解決しましたnuget。変更を以前の作業バージョンに戻します。

  <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>
于 2015-07-23T00:48:10.707 に答える
0

他の人が言っているように、nuget を使用して MVC パッケージを Web プロジェクトに再インストールするだけですが、単体テストなど、Web プロジェクトに応じて MVC パッケージをすべてのプロジェクトに追加してください。含まれている各プロジェクトを個別にビルドすると、更新が必要なウィッチ プロジェクトが表示されます。

于 2015-02-09T15:39:23.843 に答える