C# 信号器2.0错误:无法加载文件或程序集Microsoft.Owin.Security
我将一步一步地学习本教程 我在下面标记的行中得到了一个例外C# 信号器2.0错误:无法加载文件或程序集Microsoft.Owin.Security,c#,asp.net,.net,signalr,C#,Asp.net,.net,Signalr,我将一步一步地学习本教程 我在下面标记的行中得到了一个例外 string url = "http://localhost:8080"; using (WebApp.Start(url)) //<------ error on this line { Console.WriteLine("Server running on {0}", url); Console.ReadLine();
string url = "http://localhost:8080";
using (WebApp.Start(url)) //<------ error on this line
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
stringurl=”http://localhost:8080";
使用(WebApp.Start(url))/此程序集与请求的程序集不匹配,这就是您收到此错误的原因。检查GAC中的Microsoft.Owin.Security版本。另请参见好的,我已经解决了
我必须使用此命令将我的Microsoft.Owin.Security包升级到2.1.0
Install-Package Microsoft.Owin.Security -Version 2.1.0
并像这样修改my 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" />
就我而言,我有两个项目:
MyProj.MvcWeb
(一个引用了Microsoft.Owin.Security 3.0.0
的MVC应用程序)
MyProj.Data.Entities
(引用了Microsoft.Owin.Security 2.1.0的类库;不确定这是如何发生的)
在MyProj.Data.Entities
项目中将Microsoft.Owin.Security
从2.1.0
升级到3.0.0
,为我解决了这个问题。简单,
转到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" />
这可能有用。我接受了你的想法,感谢你所做的研究,我是这样做的:
get-project PerfSurf | Update-Package Microsoft.Owin.Security
这要简单得多,而且这将更新清单本身
忽略这个(get project PerfSurf
)部分,因为我使用它是因为我有多个测试项目,并且不想全部更新它们。在我的情况下,这是IIS express的问题。一旦我将调试更改为本地IIS,错误就消失了。将app.config重命名为web.config对我来说很有用。或者只是复制app.config并将其命名为web.config。在我的例子中,我在“更新数据库”过程中首先在代码中出现了这个错误。我将“将启动设置为项目”放在带有迁移的项目中。它帮助我我通过更改我的Web.config配置标记修复了它:
由此:
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
为此:
<configuration>
不知道为什么会这样。我的GAC中没有Microsoft.Owin.Security。它只存在于packages文件夹中Microsoft.Owin.Security更新包的可能重复项工作得非常出色,谢谢!对于遇到这个问题的人,我这样做了,但仍然收到了错误。直到我从web服务器上删除所有文件并重新发布,错误才消失。只是重新发布而不先删除并不能解决问题。@Dave从bin目录中删除所有DLL并重新编译对我也很有效。
<configuration>