SignalR Постоянное соединение, дающее 404 при эхо/согласовании

У меня возникли проблемы с самым простым примером https://github.com/SignalR/SignalR/wiki/QuickStart-Persistent-Connections. Я получаю "404 при эхо/переговорах"


person Carl Björknäs    schedule 16.02.2012    source источник


Ответы (3)


Пример устарел. Это связано с тем, что проект MVC по умолчанию вызывает RegisterRoutes(RouteTable.Routes); вам необходимо переместить MapConnection внутрь RegisterRoutes после routes.IgnoreRoute("{resource}.axd/{ *pathInfo}";, но перед любыми другими маршрутами.

надеюсь, это поможет

person Stefan Bergfeldt    schedule 16.02.2012
comment
Я попытался реализовать SignalR, используя тот же образец, но столкнулся с той же проблемой. /echo/negotiate все еще 404. Может кто-нибудь помочь? - person KevinIsNowOnline; 29.05.2013
comment
Попробуйте еще раз прочитать мое решение, важен порядок RegisterRoutes. - person Stefan Bergfeldt; 29.05.2013

Я получил точно такую ​​же ошибку при попытке реализовать пример базового постоянного соединения, и мне потребовалось некоторое время, чтобы понять, что это произошло из-за несоответствия версии для 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. Во всяком случае, это было решение моей проблемы.

person Niklas Söderberg    schedule 05.04.2012
comment
спасибо, чувак, мне потребовалось некоторое время, чтобы заметить это, если бы я мог дать тебе тысячу баллов, я бы - person Irving r; 02.05.2012
comment
Сумасшедший, у меня была такая же проблема. Локально мое приложение было в порядке, но при вызове signalr получало 404. Я добавил это в свой web.config на сервере и пуф: работает. - person Kywillis; 09.09.2013

Есть два шага:
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(){}

Удачи !

person Thuận Nguyễn VTC Intecom    schedule 15.10.2013