Помещение:
У меня есть служба Windows, которая действует как клиент для приложения ASP.NET MVC3 на основе IIS. Они оба работают на одной машине, и я пытаюсь заставить их общаться друг с другом через SignalR.
Я использую библиотеку SignalR.Client, загруженную из Nuget в службе Windows, и успешно подключил ее к IIS. Однако теперь, когда я вызываю функцию со стороны SignalR Hub на стороне MVC, которая должна распространяться на клиенты (включая мою службу Windows) - служба Windows не получает никаких событий.
Что я пробовал:
Я пытался подписаться на события на стороне сервера разными способами, но вот мой текущий код:
private static Connection WebUIConnection = new HubConnection(ConfigurationManager.AppSettings["localIISLocation"]);
private static IHubProxy webUiHubProxy = new HubProxy(WebUIConnection, "Hub");
----
WebUIConnection.Credentials = new System.Net.NetworkCredential(userName, password);
webUiHubProxy.On("invoke", () => Console.WriteLine("Derp"));
WebUIConnection.Start().Wait();
На стороне IIS я звоню:
Clients.invoke();
Итак, я попытался вызвать вещи из службы Windows, и они отлично работают - однако, когда информация должна идти из IIS-> Служба Windows, абсолютно ничего не происходит.
Теперь, учитывая, что внутри SignalR происходит динамическое связывание, я не вижу никаких исключений и не имею ни малейшего понятия, как подойти к отладке. Я проверил журналы приложений в Event Viewer, и там нет ничего неубедительного.
Я думаю, может быть, если в Windows есть система, которая запрещает IIS подключаться к локальной машине (в качестве меры безопасности), но странно, что соединение работает идеально в одном направлении, а не Другой.
Любые идеи о том, как отладить это, или на самом деле, о чем это может быть?
С уважением,
Лари