3

NetHttpBindingIIS 8 Express でWCF を使用しようとするとWebSocketException、クライアントが接続を試みると、クライアント側で次のメッセージがスローされます。

WebSocket のアップグレード リクエストが失敗しました。応答ステータス コード '200 (OK)' を受信しました。予想: '101 (SwitchingProtocols)'。

Google 検索は役に立ちません。

このエラーの原因は何ですか?

4

1 に答える 1

10

これは、HTTP サーバーがその URL で WebSockets をサポートしていないことを意味します。WebSocket のネゴシエーション中に、標準の HTTP 1.1GET要求が特別なUpgrade: websocketヘッダーと共にサーバーに送信され、クライアントが接続で HTTP ではなく WebSocket を使用することを望んでいることをサーバーに知らせます。サーバーが WebSocket をサポートし、要求ヘッダーが有効な場合、サーバーは101応答を送信して、接続中にサーバーが接続を WebSocket に切り替えることをクライアントに知らせる必要があります。3xx リダイレクト以外の応答は、サーバーがUpgradeその URL での要求を認識または許可しないことを意味します。

于 2013-08-12T20:58:55.087 に答える