У меня есть рабочее чат-приложение, работающее на SignalR 1.1.2, которое будет размещено на серверах с балансировкой нагрузки, поэтому мне нужно реализовать решение объединительной платы для синхронизации серверов./signalr/hubs не генерируются при обновлении до SignalR-2.0.0-beta2
Это приложение ASP.NET MVC4 .NET 4.5. Использование Контактов SignalR, а не постоянное соединение. Приложение использует AngularJS на стороне клиента для обработки привязок и обновлений ui.
Я выполнил шаги, перечисленные в here, для реализации объединительной платы сервера sql и использовал шаги, описанные в перенастройке 1.x to 2.0, очерченной here. Решение строится, но при попадании страницы, использующей SignalR, ссылка сценария «/ signalr/hubs» возвращает ошибку 500.
Вот список шагов, которые я предпринял до сих пор.
Используя nuget, удалите все ссылки и зависимости, связанные с SignalR 1.1.2. Двойные проверки/bin и/packages каталоги, чтобы убедиться, что они больше не ссылаются на старые библиотеки. Это за комментарий, найденный в github issue, относящийся к обновлению 2.0, при котором удаление и переустановка SignalR было способом перехода на обновление.
установлен SignalR 2.0.0-beta2 с помощью диспетчера пакетов консоли (PMC)
Install-Package Microsoft.AspNet.SignalR -Pre
установлен SQL Server объединительной платы сообщений с использованием ПМК
Install-Package Microsoft.AspNet.SignalR.SqlServer -Pre
Удалены
RouteTable.Routes.MapHubs();
из Global.asaxСоздал класс запуска в корне проекта.
Startup.cs
using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Owin;
namespace My.NameSpace
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapHubs();
}
}
}
Добавлено
<add key="owin:AppStartup" value="My.NameSpace.Startup, App_Code"/>
в<appSettings>
внутри Web.configПоставьте точку останова в методе Startup.Configuration() и проверить, что оно удавалось и выполняло app.MapHubs без исключений при запуске приложения
Я не использую постоянное соединение, поэтому не включал строку
страница приложенияapp.MapConnection<MyConnection>("/echo");
и не получал каких-либо двусмысленных определений.чата ссылается на следующий LIBS
- JQuery-1.8.3.js
- jquery.signalR-2.0.0-beta2.js
<script src='/signalr/hubs'></script>
- AngularJS v1. 1.5
При запуске проекта,
/signalr/hubs
не найден на странице чата приложениехром Dev инструмент возвращает
500 Internal Server Error
для/signalr/hubs
вызова на вкладке сети.файловая система не имеет
/signalr/hubs
каталог
Мой следующий шаг, чтобы увидеть, если я могу создать новое решение с очень основным концентратором и посмотреть, если я могу получить сигнал 2.0 работает. Если это так, я сравню два решения, чтобы понять, что такое различия.
У кого-нибудь есть представление о том, что еще я мог проверить или исследовать, чтобы заставить это работать?
Связанные StackOverflow вопросы с подобным вопросом: one, two
Вы спасли мой день! – Christopher
Что странно, мой вариант уже установлен на IIS Express (Visual Studio 2013). Как я получил эту работу, меняется опция на внешний хост, а затем возвращается в IIS Express, и это сработало. – Dev