我发现404找不到错误,因为浏览器无法找到/ signalr / hubs.我在普通的Web应用程序(不是mvc)中使用signalR-2.0.0-rc1.以下是相关的web.config设置
<appSettings>
<add key="owin:AppStartup" value="SignalRHubServer.Startup, SignalRHubServer" />
</appSettings>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</modules>
</system.webServer>
客户端代码(/ signalr / hubs使用两种方式):
<head>
<title>SignalR Echo</title>
<script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="Scripts/jquery.signalR-2.0.0-rc1.min.js"></script>
<script type="text/javascript" src="/signalr/hubs"></script>
<!--<script type="text/javascript" src='<%= ResolveClientUrl("signalr/hubs") %>'></script>-->
</head>
Startup.cs如下:
namespace SignalRHubServer
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
当我调试时,app.MapSignaR()的断点确实被击中,但我仍然得到相同的404错误.以下是集线器声明
namespace SignalRHubServer
{
public class MyChatHub : Hub
{
public override Task OnConnected()
{
return base.OnConnected();
}
}
}
我从SignalR-1.1.3迁移了应用程序,并从global.asax.cs中删除了MapHubs()调用.我还卸载了相关的SignalR nuget包.然而,使用SignalR-1.1.3它曾经工作正常.
任何人都可以建议我可能做错了什么?
解决方法:
为了实现这一点,我不得不恢复到SignalR-1.1.3.我无法使用SignalR-2.0-rc1 beta版本.
然而,在2013年10月17日的nuget中,SignalR-2.0稳定发布,一切正常.