SignalR Persistent连接在echo / negotiate上给出404

时间:2012-02-16 19:20:48

标签: signalr

我遇到了最基本的例子https://github.com/SignalR/SignalR/wiki/QuickStart-Persistent-Connections。我得到“404 on echo / negotiate”

3 个答案:

答案 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(){}

祝你好运!