前提:
IIS ベースの ASP.NET MVC3 アプリケーションのクライアントとして機能する Windows サービスがあります。それらは両方とも同じマシン上で実行されており、SignalR を介して相互に通信できるようにしようとしています。
Windows サービスで Nuget からダウンロードした SignalR.Client ライブラリを使用していますが、IIS に正常に接続しています。ただし、MVC 側の SignalR ハブから関数を呼び出しているため、クライアント (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 の内部に動的バインディングが含まれているため、例外がスローされていません。これをデバッグする方法がまったくわかりません。イベント ビューアでアプリケーション ログを確認しましたが、決定的なものはありません。
IIS がローカル マシンに接続することを (セキュリティ対策として) 許可しないシステムが Windows に存在するのではないかと考えていますが、接続が一方の方向では完全に機能し、もう一方の方向では機能しないのは奇妙です。
これをデバッグする方法、または実際にこれが何であるかについてのアイデアはありますか?
よろしく、 ラリ