
私は、HTTPS 経由で Websocket を備えた IIS 8 Web サーバーを公開すれば、TMG でも問題は発生しないはずだと、狂気じみて考えていました。
ただし、公開、フィルタリング、および要求の設定に関係なく、TMG を通過するときに Web サーバーに到達する Websocket 接続アップグレード要求は表示されません。
SignalR を使用すると、問題のブラウザーがサポートするより低いトランスポートにフォールバックできます。もちろん、TMG をバイパスするときはいつでもうまく機能します。
これを機能させるには別のファイアウォール/フィルターを見つける必要がありますか、それとも方法はありますでしょうか?
どの製品が Web ソケットをサポートしているかに関する情報を見つけるのに苦労しています。目にするのは、現在のプロキシ サーバーの 1% 未満が互換性がなく、HTTPS を使用すれば問題が軽減されるという奇妙な引用だけです。また、Microsoft 製品で Google 検索に「websocket」と入力すると、結果は単に意味不明な文字列やマルウェア サイトになります。
tl;dr: Windows Server 2012 はまだ RTM ではないことは承知していますが、TMG 2010 SP2 を介して IIS 8 Websocket 接続を確立する方法はありますか?
答え1
それで、最終的にこれを動作させる方法は次のようになります:
- Web サイト公開ルールは使用せず、代わりに非 Web サーバー ルールを使用してください。
- デフォルトのHTTPSサーバープロトコル定義を使用する
- プロトコル内のフィルターを有効にしないでください
- ルールの宛先セクションで、リクエストが元のクライアントから送信されたように表示する
- また、関係ありませんが、Web サーバーが SecureNAT クライアントであることを確認してください (つまり、そのデフォルト ゲートウェイが問題の TMG であることを確認してください)。
これにはいくつか制限がありますが、Web ソケットを利用する IIS 8 ASP.NET 4.5 サイトを公開するという私のニーズには応えます。