web-dev-qa-db-ja.com

SignalR 2.0エラー:ファイルまたはアセンブリMicrosoft.Owin.Securityをロードできませんでした

私はこのチュートリアルを段階的に追っています

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-signalr-20-self-Host

そして、私は下にマークされた行で例外を取得しています

        string url = "http://localhost:8080";
        using (WebApp.Start(url)) //<------ error on this line
        {
            Console.WriteLine("Server running on {0}", url);
            Console.ReadLine();
        }

エラーメッセージ:

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

詳細:

私のプロジェクトソリューションでは、参照はNuGetのパッケージフォルダー内のdllを指しています

これは、NuGetによってApp.configファイルに追加されました

<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

パッケージフォルダーで、packages\Microsoft.Owin.Security.2.0.0\lib\net45、Microsoft.Owin.Security.dllのファイルバージョンは2.020911.395です。

45
Null Reference

はい、解決しました。

このコマンドを使用して、Microsoft.Owin.Securityパッケージを2.1.0にアップグレードする必要がありました

Install-Package Microsoft.Owin.Security -Version 2.1.0

App.configのバインディングを次のように変更します

<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
64
Null Reference

私の場合、2つのプロジェクトがありました。

  • MyProj.MvcWebMicrosoft.Owin.Security 3.0.0を参照したMVCアプリケーション)
  • MyProj.Data.EntitiesMicrosoft.Owin.Security 2.1.0を参照したクラスライブラリ。これがどのように発生したかわからない)

Microsoft.Owin.Securityプロジェクトで2.1.03.0.0からMyProj.Data.Entitiesにアップグレードすると、問題が修正されました。

23
Jon Sagara

私はあなたのアイデアを受け取りました、あなたがした研究に感謝します、そして私はこのようにしました:

get-project PerfSurf | Update-Package Microsoft.Owin.Security

より簡単になり、これによりマニフェスト自体が更新されます。

これを無視(get-project PerfSurf)一部。複数のテストプロジェクトがあり、それらをすべて更新したくないため、使用しています。

7
deadManN

簡単です。web.configファイルに移動します。 Microsoft.Owin、Microsoft.Owin.Security.OAuth、Microsoft.Owin.Security.Cookies、Microsoft.Owin.Securityの「bindingRedirect」タグを次のように変更します。

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.1.0" />

これは動作する可能性があります。

4

私の場合、最初に「データベースの更新」中にコードにこのエラーがあります。私は「プロジェクトとしてstartaを設定する」をmigration.withプロジェクトに入れました

0
user7358060

Web.config構成タグを変更して修正しました。

これから:

<configuration xmlns="http://schemas.Microsoft.com/.NetConfiguration/v2.0">

これに:

<configuration>

これがなぜ機能するのか分からない。

0
async3

私の場合、それはIIS express issue。でした。デバッグをローカルIISに変更すると、エラーはなくなりました。

0
Andrew Gale

App.configをweb.configに名前変更するとうまくいきます。または、単にapp.configのコピーを作成してweb.configと呼びます

0
Dez Udezue

このアセンブリは要求されたものと一致しないため、このエラーが発生します。 GACのMicrosoft.Owin.Securityバージョンを確認してください。 here も参照してください

0
Shachaf.Gortler