SignalR 2.0错误:无法加载文件或程序集Microsoft.Owin.Security

Nul*_*nce 45 .net c# asp.net signalr

我正在逐步学习本教程

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();
        }
Run Code Online (Sandbox Code Playgroud)

错误信息:

无法加载文件或程序集"Microsoft.Owin.Security,Version = 2.0.1.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

更多信息:

在我的项目解决方案中,引用指向NuGet的packages文件夹中的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>
Run Code Online (Sandbox Code Playgroud)

在packages文件夹中,packages\Microsoft.Owin.Security.2.0.0\lib\net45Microsoft.Owin.Security.dll的文件版本为2.020911.395

Nul*_*nce 64

好的,我已经解决了.

我不得不使用此命令将Mic​​rosoft.Owin.Security包升级到2.1.0

Install-Package Microsoft.Owin.Security -Version 2.1.0
Run Code Online (Sandbox Code Playgroud)

并修改我的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" />
Run Code Online (Sandbox Code Playgroud)

  • 只是为那些遇到这个问题的人添加 - 我这样做了但仍然收到错误.直到我从Web服务器删除了所有文件并重新发布该错误消失之后.简单地重新发布而不首先删除没有解决问题. (3认同)

Jon*_*ara 23

就我而言,我有两个项目:

  • MyProj.MvcWeb(引用的MVC应用程序Microsoft.Owin.Security 3.0.0)
  • MyProj.Data.Entities(引用的类库Microsoft.Owin.Security 2.1.0;不确定这是怎么发生的)

升级Microsoft.Owin.Security2.1.03.0.0MyProj.Data.Entities项目固定我的问题.


dea*_*anN 7

我接受了你的想法,谢谢你所做的研究,我做到了这样:

get-project PerfSurf | Update-Package Microsoft.Owin.Security
Run Code Online (Sandbox Code Playgroud)

它更简单,这将更新清单本身.

忽略this(get-project PerfSurf)部分,因为我使用它,因为我有多个测试项目,并且不想全部更新它们

  • `Update-Package Microsoft.Owin.Security`就像魅力一样,谢谢! (4认同)