Signalr Stristent Connection, давая 404 на Echo/Curange
-
26-10-2019 - |
Вопрос
У меня проблемы с самым основным примером https://github.com/signalr/signalr/wiki/quickstart-persistent-connections. Анкет Я получаю "404 на эхо/переговоры"
Решение
Пример устарел. Это потому, что вызовы MVC-проекта по умолчанию RegisterRoutes (routetable.routes);Вы должны переместить MapConnection в InsideRoutes, после 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.
Не знаю, почему этот раздел отсутствовал для меня, так как, насколько я понимаю, его следует автоматически добавлять, возможно, что -то связано с бета -версией 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(){}
Удачи !