无法加载文件或程序集“Microsoft.Owin,版本= 3.0.1.0,文化=中性,PublicKeyToken = 31bf3856ad364e35”

问题描述 投票:0回答:7

我的代码在本地运行得很好,但在发布到服务器后我不断收到此错误:

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

我在这个项目中甚至没有Microsoft.Owin版本3.0.1.0,这个项目中使用的版本是2.0.0.0。然后我尝试更新 Owin 和依赖项文件但无济于事。即使删除 Bin 文件夹并重建代码后我仍然遇到同样的问题。

有人可以帮助我吗?

编辑: 将其添加到 Web.Config 后:

<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>

这就是我得到的:

无法加载文件或程序集“file:///C:\Project in\Microsoft.Owin.dll”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

c# .net asp.net-mvc owin
7个回答
19
投票

使用 Web.config -> Microsoft.Owin 版本验证已安装的 Microsoft.Owin 软件包版本 [在

管理 Nuget 软件包
]。

这两个版本应该匹配

这个对我有用


8
投票

我在更新解决方案中的软件包后遇到了这个问题。我通过重新安装 Microsoft.Owin 解决了这个问题。

从 Visual Studio 中的包管理器控制台:

update-package microsoft.owin

完成后,我能够再次运行我的应用程序。


4
投票

我在 4.1.0.0 和 4.0.1.0 上遇到了同样的问题,错误显示为 3.0.1.0,因此请务必检查 Web.config 并设置为 .csproj 中的正确版本。就我而言,我必须更新 Web.config 并将 4.0.1.0 替换为 4.1.0.0。在版本匹配之前,更新包不会执行任何操作。


1
投票

转到 Nuget 包管理器并更新所有包(如果需要)或更新 Owin 包并再次构建并运行服务器。这对我有用。


0
投票

我也遇到过几次这样的情况。安装 nuget 包(并接受许可证)总是对我有用。

因此,在 Visual Studio 中右键单击您的项目(?),管理 nuget 包。查找已安装的选项卡,如果有则删除。然后选项卡浏览,并查找 Microsoft.Owin(有几个),安装它们,然后就可以开始了!


0
投票

转到引用并单击 Microsoft.Owin 查看您安装的版本,然后转到 web.config 并将 Microsoft.Owin 下的引用更改为 3.0.1.0,然后转到 Package.config 并更改为相同版本。如果您不这样做不想出现任何问题。在“管理 Nugget 包”上为所有这些安装不同的包版本,并重复您之前执行的引用过程


0
投票

对 SharePoint 订阅版从 2024 年 2 月 CU 到 2024 年 3 月 CU 进行零停机修补后,我收到此错误。

看起来该补丁将 Microsoft.Owin 的版本从 3.0.1.0 升级到了 4.2.2.0 版本。

当我进行零停机修补时,我一次只修补一半的服务器。但是,当我尝试将安装补丁的前端服务器带回 NLB 集群时,它显示了该错误。

此错误基本上意味着 web.config 中引用的 Microsoft.Owin 版本与 bin 目录中的版本或全局程序集缓存 (GAC) 中安装的版本不匹配。

我通过从 c:\Windows\Microsoft.Net ssembly 开始从 Powershell 运行“dir Microsoft.Owin -recurse”来确认 GAC 版本为 4.2.2.0。

我通过 Windows 资源管理器导航到 Microsoft.Owin.dll 的位置,然后右键单击 -> 属性,然后在详细信息选项卡中检查 .dll 版本。

接下来,我转到我的一个网络应用程序的 web.config 位置。 c:\inetpub\wwwroot\wss\VirtualDirectories[webapp 目录]

此外,还将前端服务器上的 web.config 与我安装了 CU 的开发 SharePoint 服务器上的 web.config 进行比较,以验证 CU 是否正常工作。

搜索 Microsoft.Owin 并找到定义依赖程序集的位置:

我找到了 Microsoft.Owin 的 dependentAssembly 条目,并将 bindingRedirect 更改为指向版本 4.2.2.0 而不是 3.0.1.0。

  <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />

基本上,必须对每个 web 应用程序的 web.config 文件执行此操作。

然后,我能够使该前端 Web 服务器在 NLB 集群中重新上线,这样我就可以继续为其他前端 Web 服务器进行零停机修补。

© www.soinside.com 2019 - 2024. All rights reserved.