前提:
我有一个 Windows 服务,它充当基于 IIS 的 ASP.NET MVC3 应用程序的客户端。它们都在同一台机器上运行,我试图让它们通过 SignalR 相互通信。
我正在使用从 Windows 服务上的 Nuget 下载的 SignalR.Client 库,并且已成功将其连接到 IIS。但是,现在我正在从 MVC 端 SignalR Hub 调用一个函数,该函数应该传播到客户端(包括我的 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 内部有动态绑定,我没有看到任何异常被抛出,我完全不知道如何调试它。我用事件查看器检查了应用程序日志,那里没有任何不确定的地方。
我在想,如果 Windows 中可能有一个系统不允许 IIS 连接到本地机器(作为一种安全措施),但奇怪的是连接在一个方向而不是另一个方向上完美工作。
关于如何调试这个的任何想法,或者实际上这可能是什么?
最好的问候,拉里