2017-01-06 7 views
0

У меня есть простое приложение SignalR, которое отлично работает при самообслуживании или размещении в IIS VS2015.SignalR on IIS не работает

Когда я пытаюсь разместить его в полном объеме IIS, я не очень далеко. Вот мой код подключения:

public void Connect() 
{ 
    _connection = new HubConnection(ServerUri); 

    if (_enableDebugging) //<== is True for debugging right now 
    { 
     _connection.TraceLevel = TraceLevels.All; 
     _connection.TraceWriter = Console.Out; 
    } 

    _hubProxy = _connection.CreateHubProxy(HUB_NAME); 

    _hubProxy.On<string>("EchoMessage", EchoMessage); 
    _hubProxy.On<AssayDashboardInfo>("ResultsAdded", ResultsAdded); 
    _hubProxy.On<AssayDashboardInfo>("ResultsChanged", ResultsChanged); 

    _connection.Error += _connection_Error; 
    _connection.StateChanged += _connection_StateChanged; 

    try 
    { 
     _connection.Start(); 
    } 
    catch (Exception e) 
    { 
     _logger.Error("*** Connection failed", e); 
    } 
} 

У меня нет сообщений об ошибках или исключений. Что я получаю некоторый выход в окне консоли:

23: 57: 41,8538683 - нулевой - ChangeState (Отключено, Подключение) 23: 57: 42,0208850 - нулевой - Разъединение 23: 57: 42.0208850 - нуль - Транспорт .Dispose() 23: 57: 42.0218851 - null - Закрыт

Опять же, без каких-либо исключений или информации об ошибке, я могу только предположить, что он не находит концентратор. Событие _connection_StateChanged вызывается дважды - сначала с «Подключением», затем немедленно с «Отключено». И это насколько я понимаю.

На данный момент я обращаюсь к кому-либо, кто знает, что означают эти сообщения или что я делаю неправильно.

Благодаря

+0

Старт() - метод асинхронного поиска. Вам нужно подождать. – Pawel

+0

@Palel Я добавил ожидание. Без изменений. Тот же результат, что и раньше. – CoderForHire

+0

, но вы ждете также метода Connect? Вы должны сделать его асинхронным до конца. Я не думаю, что код, который вы показали, недостаточно для того, чтобы точно указать, в чем проблема, но я подозреваю, что вы не используете асинхронно правильно, и в основном соединение расположено, прежде чем вы даже попытаетесь его использовать. – Pawel

ответ

0

(извините за английский)

У меня была та же проблема, то вы. Я не тот, кто ее решает, хвалить моего коллегу.

Так что в основном ошибка произошла из виртуальной папки в диспетчере IIS. Поэтому вы должны указывать прямо на корень вашего файла.

надежный это полезный.

Смежные вопросы