我发现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它曾经工作正常。
有人可以提出我可能做错的事吗?
答案 0 :(得分:2)
为了实现这一点,我不得不恢复到SignalR-1.1.3。我无法使用SignalR-2.0-rc1 beta版本。
然而有了SignalR-2.0,2013年10月17日在nuget上稳定发布,一切正常。