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が表示されます。私の開発マシンでは問題なく動作します。
Copy Local
およびSystem.Web.Http
アセンブリのプロパティでSystem.Web.Http.WebHost
をtrue
に設定し、パッケージを再デプロイします。
それでも問題が解決しない場合は、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" />
次にビルドします。それは私のために働いた!
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>
GACに異なるバージョンのアセンブリがある場合、binフォルダーからではなく、常にロードされます。
問題を次の手順で解決しました。
ワンクリック発行で正しいバージョンのdllが置き換えられなかったか、リモートサイトがファイルを使用し続けていました。
私はまったく同じエラーに遭遇しました。これは、Web.configを以前のバージョンに置き換えたアプリケーションを展開するために使用していたスクリプトが原因でした。 Web.configが間違ったバージョンのSystem.Web.Httpを指定していました。そのステップを削除することで問題は解決しました。