2016-07-29 3 views
1

私はsignalr2.2 Webアプリケーションを使用しており、IIS-8でホストされています。ここでは、ARR3.0を使用してアプリケーションのロードバランシングを実装しようとしました。私のサーバーファームでは、2台のサーバーを接続し、ルーティングルールを「加重ラウンドロビン」として設定しました。すべてのサーバーには、HTMLページを持つjavascriptクライアントがあります。私は予想通り、要求がルーティングされた任意のサーバのHTMLページにアクセスしていますが、私は私のhtmlページにこのエラーが生じていますし、signalrはSignalR 2.2およびARR3.0ロードバランシング

に接続されてませんが、WS「へ

のWebSocket接続://mydomain.com ?= 1'/signalr /接続搬送= WebSocketを& clientProtocol = 1.5 & connectionToken = x9rAfatyMm3TbqzrYKL1K37Z4tKrUTH7bwNmSItW55Z0ms6pe43YiQGFOmaHMyT%2BpmGz62ukt4tha72vPcJhdqLtIvsQvqvY15oYGv69JjzSuuiSL7v2l%2FccZT6tQa3Z & connectionDataは=%5B%7B%22name%22%3A%22chathub%22%7D%5D & TIDが失敗しました:エラー時WebSocketハンドシェイク:予期しない応答コード:400

サーバファーム内のこのサーバの誰かをオフラインにすると、signalrは正常に動作し、エラーはスローされません。解決策を見つけるのを手伝ってください。

私は.NETクライアントアプリケーションからsignalrサーバーと通信した場合、それが開始要求中に次のエラー

エラーがスローされます。接続を停止します。

+0

ファーム内のすべてのサーバーに同じマシンキーを設定する必要があります。 – janitha000

+0

こんにちは@ janithat000、私は明確にする必要があります。実装されたマシンキーの変更後、サーバーファーム内で、他のサーバーでメソッド呼び出しが発生しました。これはルーティングの手順ですか?または私は何かが欠けている? plsは私を助けます。 注:アプリケーションノード – Suresh

答えて

2

この問題もありました。より深く見ると、エラーはThe connection id is in the incorrect formatです。グーグルで少し調べたところ、私はどこかで、ファーム環境を実行するときにサーバーがIISで構成できる同じマシンキーを共有する必要があると読んでいます。これに

、次の手順を実行します。

  • は、ファーム内のサーバーのいずれかに接続しているIISを開きます。サーバ・ノードで
  • 、右側のメニューで右ペインに
  • マシンキーオプションを開いて、はキー
  • のチェックを外し、両方検証キー復号鍵用Generate a unique key for each applicationオプションを生成]をクリックします
  • 生成された2つのキーをコピーする(メモ帳などに貼り付けます)
  • ファーム内のすべてのサーバーが同じキーを共有していることを確認してください(ARRサーバーではこれは必要ありません)。共有設定を使用するとすぐにはできません)。

また、各サーバーのアプリケーションが同じIDを使用していることを確認する必要があります。たとえば、アプリケーションノード(またはその場合はサイトノード)を選択し、右メニューでを選択します。、次に接続先...。選択したオプションがアプリケーションユーザーの場合は、アプリケーションプールの設定方法を確認する必要があります。 ネットワークサービス(私のものと同じ)を使用している場合は、各サーバーが独自の資格情報を使用するため、同じIDを使用する必要があるため、問題は解決します。

私のシナリオでは、ファーム内のすべてのサーバーへのアクセス権を持つユーザーを作成し、この同じユーザーをアプリケーションで使用する必要がありました。これをした後でさえ、私の問題は解決されました。

+0

のAlissonでパススルー認証を使用しています。私はこれを試してみましょう – Suresh

+0

こんにちは@アリソン、それは正常に動作していると私は決してこれ以来、ソケットエラーを取得します。この情報をありがとう。しかし、私が明確にする必要があることは、サーバーファームで実装されたマシンキーの変更後、私がURLを押すたびに、onconnectedが1つのサーバーで発生し、ハブのメソッド呼び出しが別のサーバーで発生しました。これはルーティングの手順ですか?または私は何かが欠けている? plsは私を助けます。 注:アプリケーションノード – Suresh

+0

@Sureshでパススルー認証を使用しています。歓迎します。そうであれば、回答を受け入れたものとしてマークすることを検討してください。 – Alisson

関連する問題