Asp.net mvc 4 如何在asp.net mvc 4中使用signalr v2 beta

Asp.net mvc 4 如何在asp.net mvc 4中使用signalr v2 beta,asp.net-mvc-4,signalr,owin,Asp.net Mvc 4,Signalr,Owin,v2之前: RouteTable.Routes.MapHubs(); 在v2中,MapHubs不再存在。wiki要求添加一个启动类和一个配置方法,并调用app.MapHubs() 但是该方法从未被调用,没有错误发生,并且。。。未设置集线器 我想有一些代码要添加到global.asax.cs 秘密是什么?尝试定义[assembly:OwinStartup(typeof(MyAssembly.Startup)),看看您的启动类是否被拾取 编辑:删除的行不相关 解决方案 <appSetting

v2之前:

RouteTable.Routes.MapHubs();
在v2中,MapHubs不再存在。wiki要求添加一个启动类和一个配置方法,并调用app.MapHubs()

但是该方法从未被调用,没有错误发生,并且。。。未设置集线器

我想有一些代码要添加到global.asax.cs


秘密是什么?

尝试定义[assembly:OwinStartup(typeof(MyAssembly.Startup)),看看您的启动类是否被拾取

编辑:删除的行不相关

解决方案

<appSettings>
    <add key="owin:AppStartup" value="MyNameSpace.Startup, MyNameSpace" />
</appSettings>

另外,还要更新MVC4(不是预发布,而是最新的稳定版本)和SignalR/owin nugets

加上修复js客户端中的错误:

  • 如果disconnectTimeout=999000,则它被禁用。必须在服务器端设置为:GlobalHost.Configuration.DisconnectTimeout=TimeSpan.FromSeconds(999); 注意:服务器端无法将值设置为<6(如果DisconnectTimeout<6,则Signaler会引发异常)。所以用这个神奇的数字
  • WebSocket:在sockettransport中设置connection.socket=null,否则在(手动)调用stop后,调用start失败
  • serverSentEvents:防止在卸载窗口时由于重新连接尝试而导致的错误
  • 如果信号集线器url不可用(暂时),chrome会出现异常失败:与其放弃,不如尝试下一个可用协议/尝试重新连接

我能够通过

  • 删除对旧版本SignalR的所有引用,即nuget卸载库并重新检查/bin

  • 通过软件包管理器控制台安装了SignalR 2.0.0-beta2
    安装软件包Microsoft.AspNet.SignalR-Pre

  • 遵循1.x到2.0迁移中概述的步骤

  • 最重要的是更改项目配置以使用本地IIS Web服务器而不是Visual Studio Developer server(Cassini)。


更多信息在我在web.config中发布的问题/答案中必须有该类的完全限定名,例如

<appSettings>
    <add key="owin:AppStartup" value="**My.Name.Space.Startup**, **AssemblyName**" />
</appSettings>


,即删除了NuGet软件包“Microsoft.AspNet.signal.Owin”

OwinStartup在beta2中不存在。请尝试添加应用设置Owin:AppStartup,其值为启动类的完全限定名称。例如,“MyAssembly.Startup,MyAssembly”已经尝试过了,根本不做任何事情。信号机v2似乎只针对VS2013/MVC5!相关问题:您是否向web.config添加了任何内容?没有,web.config中没有任何内容。现在,他们将其更改为app.mapsigner();这是可行的,ie启动代码被调用,但sql背板抛出异常,并且无法执行mvc操作。也许应该使用MVC5 prerelase包。您完全不需要添加任何配置。您所做的只是重新声明了所有的默认值。可能,但如果没有,它将一事无成。这可能是因为您没有将该类放置在正确的命名空间中。那么正确的命名空间是什么?我讨厌魔法。我不算占卜。卡西尼号很久以前就被IIS Express取代了。web服务器在这里不应该是问题,因为Signal在任何版本下都可以正常工作,即使WebSocket仅在IIS 8上激活。@Softlion我正在使用VS2012并从开发服务器切换到本地IIS,修复了我收到的错误,该错误是
System.PlatformNotSupportedException:此操作需要IIS集成管道模式。
Sure,但我没有这个错误。过几天我会重新检查。我会再试100次,但我不是初学者。那是行不通的。这只在没有任何跟踪/日志的情况下得到http 500错误,这很奇怪。@Softlion为什么不试试现有程序集中文档中最简单的聊天示例?如果这样做行得通的话,你可以排除程序集名称的问题,把注意力放在其他事情上@Softlion你也删除了一个NuGet软件包“Microsoft.AspNet.signal.Owin”了吗?我又试了一次,效果不错。唯一不同的是我将MVC4更新为最新的稳定版本。
<appSettings>
    <add key="owin:AppStartup" value="**My.Name.Space.Startup**, **AssemblyName**" />
</appSettings>