Asp.net mvc 4 如何在asp.net mvc 4中使用signalr v2 beta
v2之前: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
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>