Startup.cs方法app.MapSignalR()不在signalR-2.0中生成集线器

时间:2013-10-16 07:31:31

标签: c# asp.net iis-7.5 signalr asp.net-4.5

我发现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它曾经工作正常。

有人可以提出我可能做错的事吗?

1 个答案:

答案 0 :(得分:2)

为了实现这一点,我不得不恢复到SignalR-1.1.3。我无法使用SignalR-2.0-rc1 beta版本。

然而有了SignalR-2.0,2013年10月17日在nuget上稳定发布,一切正常。