我遇到了最基本的例子https://github.com/SignalR/SignalR/wiki/QuickStart-Persistent-Connections。我得到“404 on echo / negotiate”
答案 0 :(得分:18)
示例已过期。 这是因为默认的MVC项目调用 RegisterRoutes(RouteTable.Routes); 您必须在 routes.IgnoreRoute(“{resource} .axd / {* pathInfo}”; 之后但在任何其他路线之前将MapConnection移动到RegisterRoutes内部。
我希望这会有所帮助
答案 1 :(得分:3)
在尝试实现基本的持久连接示例时,我得到了完全相同的错误,我花了很长时间才意识到这是由于Newtonsoft.Json的版本不匹配,问题和解决方案在这里描述:
https://github.com/SignalR/SignalR/issues/195
即添加以下部分:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" />
</dependentAssembly>
到你的web.config。
不知道为什么那部分遗失给我,因为据我所知,它应该由nuget自动添加,也许与Visual Studio 11 beta有关。无论如何,这是解决我的问题的方法。
答案 2 :(得分:0)
有两个步骤:
1.在web.config
添加或编辑规则json
<dependentAssembly> <assemblyIdentity name="Newtonsoft.Json"
publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" />
</dependentAssembly>
2.在Global.asax
添加新内容:
RouteTable.Routes.MapConnection<ChatConnection>("negotiate", "/chat");
方法protected void Application_Start(){}