У меня возникли проблемы с самым простым примером https://github.com/SignalR/SignalR/wiki/QuickStart-Persistent-Connections. Я получаю "404 при эхо/переговорах"
SignalR Постоянное соединение, дающее 404 при эхо/согласовании
Ответы (3)
Пример устарел. Это связано с тем, что проект MVC по умолчанию вызывает RegisterRoutes(RouteTable.Routes); вам необходимо переместить MapConnection внутрь RegisterRoutes после routes.IgnoreRoute("{resource}.axd/{ *pathInfo}";, но перед любыми другими маршрутами.
надеюсь, это поможет
Я получил точно такую же ошибку при попытке реализовать пример базового постоянного соединения, и мне потребовалось некоторое время, чтобы понять, что это произошло из-за несоответствия версии для 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. Во всяком случае, это было решение моей проблемы.
Есть два шага:
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(){}
Удачи !