過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです.
画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.IIS+ASP.NETにて、WebSocketを利用しようと試行錯誤してもずっと500エラーが起こるトラブルについて、2日間ぐらいつまづいてしまったものの解決したのでメモ。
状況
まずトラブルの状況ですが、ほとんど機能がなくてエラーが発生するポイントがほぼ皆無の状況、コンパイルエラーが起こるわけでもなく、AcceptWebSocketRequestの段階でエラーが起こっているものです。
ちなみにエラーの詳細はこんな感じ。
System.InvalidOperationException: WebSockets は現在のアプリケーション構成ではサポートされていません。 これを有効にするには、Web.config で次の構成スイッチを設定します: <system.web> <httpRuntime targetFramework="4.5" /> </system.web> 詳細については、http://go.microsoft.com/fwlink/?LinkId=252465 を参照してください。 場所 System.Web.HttpContext.AcceptWebSocketRequest(Func`2 userFunc, AspNetWebSocketOptions options) 場所 socket.ProcessRequest(HttpContext context) 場所 http://server/ws/socket.ashx:行 27 [
ここで書かれている.NET FW 4.5へのスイッチのことですね。ちゃんとweb.configにも記述してるのに全然動作しません。
サーバー側に4.5はインストールされています。マネージパイプは統合のままです。正直問題点が見つかりません。
解決策
問題はWebSocketがx64で動作しないところに問題があったようです。なので、アプリケーションプールのほうにて、x86での動作を許可してあげましょう。
これで解決です。というかこんなことあるんですね。しかもこれで解決しちゃうところも少し腹立たしい。