我正在逐步学习本教程
我在下面标有
的行上遇到例外情况 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”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (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>
在packages文件夹packages\Microsoft.Owin.Security.2.0.0\lib\net45
中,Microsoft.Owin.Security.dll的文件版本为2.020911.395
答案 0 :(得分:63)
好的,我已经解决了。
我必须使用此命令将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" />
答案 1 :(得分:23)
就我而言,我有两个项目:
MyProj.MvcWeb
(引用Microsoft.Owin.Security 3.0.0
的MVC应用程序)MyProj.Data.Entities
(引用Microsoft.Owin.Security 2.1.0
的类库;不确定这是怎么发生的)在Microsoft.Owin.Security
项目中将2.1.0
从3.0.0
升级到MyProj.Data.Entities
为我解决了问题。
答案 2 :(得分:7)
我接受了你的想法,谢谢你所做的研究,我这样做了:
get-project PerfSurf | Update-Package Microsoft.Owin.Security
它更简单,这将更新清单本身。
忽略这个(get-project PerfSurf
)部分,因为我使用它,因为我有多个测试项目,并且不想全部更新
答案 3 :(得分:4)
简单, 转到您的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 :(得分:0)
此程序集与请求的内容不匹配,这就是您收到此错误的原因。检查GAC中的Microsoft.Owin.Security版本。另请参阅here
答案 5 :(得分:0)
答案 6 :(得分:0)
将app.config重命名为web.config对我有用。或者只是复制app.config并将其命名为web.config
答案 7 :(得分:0)
在我的情况下,我在&#34;更新数据库&#34;期间首先在代码中出现此错误。我把&#34;设置为启动项目&#34;在项目中使用migration.it帮助我
答案 8 :(得分:0)
我通过更改我的Web.config配置标记来修复它:
来自:
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
到此:
<configuration>
不知道为什么会这样。