use*_*611 6 c# .net-assembly visual-studio
我将代码部署到ST服务器时出现以下错误.相同的代码在我的机器和开发服务器上工作正常,但是当我们尝试访问应用程序中的一个页面时,在ST服务器上通过此错误.
错误是:
无法加载文件或程序集"Microsoft.Owin,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)描述:在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集"Microsoft.Owin,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
这是我在web.config中的内容
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
添加 SignalR 后,我没有更新服务器上的web.config文件。这是缺少的:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<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>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
通过在web.confg文件中添加以下引用得到修复
Microsoft.Owin.Security.Cookies
小智 2
由于它在本地计算机上运行良好,因此有几种可能的情况,首先检查 Microsoft.Owin 参考,因为在生产环境中存在丢失的情况。 https://www.nuget.org/packages/Microsoft.Owin/2.1.0 您可以在“依赖项”部分检查它,确保 Owin 库存在并引用
然后在 dev 和 ST 机器上检查 GAC(如果您在 dev 上的 GAC 中有所需的程序集版本,但在 ST 上没有),则它可以在 dev 上正常工作)
对于重定向,请确保您具有正确的 xml 命名空间
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
Run Code Online (Sandbox Code Playgroud)
包装你的依赖元素
如果之后您仍然没有成功找到原因,您可以尝试使用 Visual Studio 附带的工具 fuslogvw.exe 来获取有关绑定失败的更多信息。
| 归档时间: |
|
| 查看次数: |
13202 次 |
| 最近记录: |