web-dev-qa-db-ja.com

ファイルまたはアセンブリSystem.Web.Http、Version = 5.2.2.0をロードできませんでした

Asp.Net 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>

ファイルはビンに存在します。これは何が原因ですか?
Asp.Net Web APIファイルはすべて最新で、バージョン5.2.2が表示されます。私の開発マシンでは問題なく動作します。

19
Mike_G

Copy LocalおよびSystem.Web.HttpアセンブリのプロパティでSystem.Web.Http.WebHosttrueに設定し、パッケージを再デプロイします。

それでも問題が解決しない場合は、NuGetパッケージを再インストールしてください。これにより、破損した依存関係が修正されることが期待されます。パッケージ管理コンソールから、次のコマンドを実行します。

Update-Package Microsoft.AspNet.WebApi -reinstall

System.Web.Http.WebHostもインストールするようにしてください。

私にとっては、「Solution Explorer」からプロジェクト参照の「System.Web.Http」のバージョンを確認しました。これは5.2.3.0でしたので、web.configで次のように変更しました:

<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" /> 

<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.3.0" />

次にビルドします。それは私のために働いた!

9
Daniel B

Web.config内に以下の設定を追加すると、私の問題は解決しました。

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.5.0" />
  </dependentAssembly>
3
M.Laida

GACに異なるバージョンのアセンブリがある場合、binフォルダーからではなく、常にロードされます。

0
Ricardo Peres

問題を次の手順で解決しました。

  1. リモートWebサーバーへのサイトの停止
  2. サイトフォルダーのクリーニング
  3. もう一度公開する
  4. サイトを開始する

ワンクリック発行で正しいバージョンのdllが置き換えられなかったか、リモートサイトがファイルを使用し続けていました。

0

私はまったく同じエラーに遭遇しました。これは、Web.configを以前のバージョンに置き換えたアプリケーションを展開するために使用していたスクリプトが原因でした。 Web.configが間違ったバージョンのSystem.Web.Httpを指定していました。そのステップを削除することで問題は解決しました。

0
Matt Weeks