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

我发现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)

2 years ago

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

然而,在2013年10月17日的nuget中,SignalR-2.0稳定发布,一切正常 .