Signalr Сбалансированная среда 500 Внутренняя ошибка сервера

У меня возникают проблемы с установкой моего приложения signalr в сбалансированной среде

Мой сценарий таков: приложение WPF -> F5 Balancer -> Службы, размещенные на IIS 7 Win 2008 R2. Нет конфигурации объединительной платы, в основном мое приложение представляет собой тикер между сервером и клиентом, поэтому только сервер будет взаимодействовать с подключенными клиентами.

Я много читал на форумах:

Я настроил машинный ключ на серверах. Я настроил трассировку сервера (файлы не были созданы в папке веб-приложения). Проверка связи SignalR работает (http:<mydomain>:8081/signar/ping) Отображаются концентраторы SignalR (httpd:<mydomain>:8081/signar/hubs)

каждый раз, когда клиент начинает подключаться, я вижу из Fiddler:

http://<mydomain>:8081/signalr/negotiate?clientProtocol=1.4&connectionData=%5B%7B%22Name%22:%22AgentsHub%22%7D%5D

Я получил :

HTTP/1.1 500 Internal Server Error
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 14 May 2015 09:57:54 GMT

Порт 8081 открыт, мне signalr ping отвечает, на моем ноуте этот сценарий работает.

Я не знаю, как это решить.

Какие-либо предложения ?

Большое спасибо


person Alessandro Mori    schedule 14.05.2015    source источник
comment
Проверьте журнал событий на сервере — он может содержать дополнительные сведения (например, сведения об исключении, включая трассировку стека)   -  person Pawel    schedule 14.05.2015
comment
@Pawel, я не вижу какой-либо конкретной ошибки, клиент может пинговать, может перечислять концентраторы, но не может подключиться. Локально с IISExpress работает.   -  person Alessandro Mori    schedule 15.05.2015
comment
Это похоже на проблему с конфигурацией, но трудно сказать - может быть много причин для 500. Вы можете попробовать это: stackoverflow.com/questions/ 1453791/   -  person Pawel    schedule 15.05.2015


Ответы (1)


Наконец-то я нашел, что было не так в моей конфигурации.

1) Я начал разрабатывать свое примерное приложение с клиентом WPF и сигнализатором собственного хоста Console .net, используя параметр начальной загрузки документации SignalR, для приложений с собственным хостом: WebApp.Start(Config.GetSignalRServerUri);.

2) Я добавил новую службу ASP.Net, используя тот же метод начальной загрузки, забыв установить пакет nuget AspNet.SignalR.

Служба отвечала на Ping, а остальные службы концентраторов отвечали, но конвейер соединения не работал.

3) удаление WebApp.Start(Config.GetSignalRServerUri) и использование только класса запуска:

[assembly: OwinStartup(typeof(Startup))]
namespace MyApp.Host.WebService.SignalR
{
    public class Startup
    {
        private static readonly ILog log = LogManager.GetLogger(typeof(Startup));

        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            try
            {

                var hubConfiguration = new HubConfiguration();
                hubConfiguration.EnableDetailedErrors = true;
                app.MapSignalR("/signalr",hubConfiguration);
                log.Debug("SignalR started");
            }
            catch (Exception ex)
            {
                log.Error("Error during SignalR startup");
                log.Error(ex);
            }
        }
    }
}

и включая пакет Microsoft.Signalr, все работало.

Я взял полный пример по этой ссылке: http://winzikha.weebly.com/blog/step-by-step-create-chat-application-that-demonstrates-signalr

person Alessandro Mori    schedule 15.05.2015