У меня есть простое приложение 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 вызывается дважды - сначала с «Подключением», затем немедленно с «Отключено». И это насколько я понимаю.
На данный момент я обращаюсь к кому-либо, кто знает, что означают эти сообщения или что я делаю неправильно.
Благодаря
Старт() - метод асинхронного поиска. Вам нужно подождать. – Pawel
@Palel Я добавил ожидание. Без изменений. Тот же результат, что и раньше. – CoderForHire
, но вы ждете также метода Connect? Вы должны сделать его асинхронным до конца. Я не думаю, что код, который вы показали, недостаточно для того, чтобы точно указать, в чем проблема, но я подозреваю, что вы не используете асинхронно правильно, и в основном соединение расположено, прежде чем вы даже попытаетесь его использовать. – Pawel