4

前提

Windows サービスを Web サーバー (IIS Express で実行されている MVC3 プロジェクト) に対する signalR クライアントとして機能させようとしています。サーバーに接続しようとすると、401 Unauthorized が返されます。

現在、私が理解している限り、Windows サービスはアカウント NETWORK_SERVICE で実行されており、これが IIS に接続するための有効なユーザー名ではないことは理にかなっています。ただし、次の方法で SignalR を構成しようとしました。

初期化

private static Connection WebUIConnection = new Connection("http://localhost:54193/IISWebsite");

資格情報の設定

WebUIConnection.Credentials = new System.Net.NetworkCredential("?", "?")

IIS の設定: IIS はほぼ標準の MVC3 プロジェクトであり、Windows 認証が有効になっています。

私が試したこと

SignalR の資格情報をローカル Windows ユーザー名 + pw として設定しようとしましたが、ローカル ネットワーク AD uname + pw も使用しようとしましたが、これがその方法であるとは思えません。

だから私が求めているのは、自分の Windows サービスを signalR-server のクライアントとして機能させようとするときに何を考慮する必要があるかということです.Network_Service ユーザーにクライアント アクセスを許可するように IIS を構成する方法はありますか? 私がやろうとしているように、WindowsサービスをIISで実行されているWebサーバーのクライアントとして機能させることは実際に可能ですか?

ありがとう、ラリ

4

2 に答える 2

2

問題と思われるものを解決できました。SignalR.Client では、接続文字列で指定する必要がある URL は次のようになります。

private static Connection WebUIConnection = new Connection("http://localhost:54193/IISWebsite/signalr/hubs");

これに加えて、接続できるようにするには、ローカル管理者のユーザー名とパスワードを提供する必要がありました。これは私が感じている方法ではありません。ネットワーク ユーザーがローカル マシンから IIS にアクセスできるようにする方法を教えていただければ幸いです。

ただし、別の管理者アカウントを作成し、実稼働環境でそのアカウントで Windows サービスを実行することは、私が受け入れる解決策だと思います。このようにして、問題なくローカル IIS に接続できます。

この情報が他の人に役立つことを願っています:)

ラリ

于 2011-12-15T06:54:25.920 に答える
1

ハブを使用している場合、そのコードは正しくありません。使用する必要がある HubConnection があります。詳細はこちら:

https://github.com/SignalR/SignalR/wiki/SignalR-Client-Hubs

于 2011-12-15T12:40:21.273 に答える