我有一个由Web表单组成的Web应用程序。慢慢地我们将它转换为MVC。
上周我对测试环境进行了部署,一切都按预期工作。
本周我对一些ASPX /代码后面的文件以及一些用户控件进行了一些更改。我做了一个发布/部署测试,当我通过IIS浏览到该站点时收到错误。
错误是:
无法加载文件或程序集“Microsoft.Owin,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e37”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
将最后一次良好部署的bin文件夹与已损坏的部署进行比较,唯一的区别是已损坏的部署有一个额外的文件--Microsoft.Owin.Host.SystemWeb.dll
如果删除该文件,网站可以加载并正常运行。
该网站有许多项目和参考,根项目(我右键单击>发布)没有对此Microsoft.Owin.Host.SystemWeb.dll的引用,因此必须从另一个项目引用它。
有没有办法修复此错误而无需从bin文件夹中删除文件?导致错误的原因是什么?
另外两个bin文件夹都有其他Owin dll文件。
Microsoft.Owin.dll
Microsoft.Owin.Security.Cookies.dll
Microsoft.Owin.Security.dll
Owin.dll
答案 0 :(得分:2)
听起来您的某个项目使用OWIN中间件。似乎有人可能试图更新软件包,但可能没有正确完成。我会右键单击解决方案,然后单击"管理NuGet包"并重新安装OWIN包。如果这不起作用,则可能需要在web.config
中解决绑定重定向问题。您可能还想查看是否有任何OWIN引用甚至在项目中使用。