我试图让SignalR在个人账户的MVC5项目中工作。
MVC项目默认为Owin 2.0.0,所有Owin。*组件也是2.0.0。
所以我使用NuGet获取所有SignalR包,它自动解决了依赖性并下载了v 2.0.2。
项目在启动时抛出错误,并显示以下消息:
无法加载文件或程序集' Microsoft.Owin,Version = 2.0.1.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'
我也尝试将Owin升级到2.1.0,但这也没有帮助。
有没有人遇到同样的问题,解决方案是什么?
答案 0 :(得分:49)
您可以将此引用更新为我找到的最新版本(现在是2.1.0):
Install-Package Microsoft.Owin -Version 2.1.0
Install-Package Microsoft.Owin.Security -Version 2.1.0
并确保您的Web.config具有版本2.1.0的这些绑定重定向:
<configuration>
<runtime>
<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.1.0.0" newVersion="2.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
或者您可以更新此版本2.0.1的引用:
Install-Package Microsoft.Owin -Version 2.0.1
Install-Package Microsoft.Owin.Security -Version 2.0.1
并确保您的Web.config具有版本2.0.1的这些绑定重定向:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
答案 1 :(得分:3)
也许您需要在.config
中进行绑定重定向<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
答案 2 :(得分:1)
在我的情况下,当我在IIS中托管具有SignalR功能的WCF服务时,当我转到我的IIS管理器和我托管服务的应用程序时,右键单击svc
文件并单击Browse
,我收到了这个错误。所以我做了以下
在我的Visual Studio中,Tools -> Library Package Manager -> Package Manager Console
我确保选择了托管我的WCF服务的网站项目,然后一个接一个地给出了以下两个命令
uninstall-package Microsoft.AspNet.SignalR
install-package Microsoft.AspNet.SignalR
在此之后我只是重新构建我的解决方案。去了IIS经理和我托管服务的应用程序,右键单击svc
文件,然后点击Browse
,我就能看到我的服务在IE中运行。