ASP.NET 3.5で、テキストベースのWebサービスを作っています。
(テキストベースの、というのは、asmxのようなSOAP Webサービスではなく、IHttpHandlerを拡張して自前でレスポンスを返すサービスだということです)
これにアクセスするクライアントがMFCアプリケーションで、CHttpConnection, CHttpFileクラスを使っているのですが、ひとつ問題が出ています。
ク ライアントがWebサービスにアクセスしレスポンスを受け取ったあと、クライアント側のソケットがTIME_WAIT状態で残ってしまうのです。 Content-Length分だけレスポンスを受け取ったらクライアントがソケットを閉じるので、TIME_WAIT状態になるのは当たり前の動作なの ですが…
まれに、ポート番号をTIME_WAITで食い尽くしてしまってアクセスができなくなることがあり、負荷テストも途中で止まってしまいます。これでは困るので、
●クライアント側にソケットを閉じさせないようなHTTPレスポンスの仕方はないでしょうか?
●レスポンスにContent-Lengthが含まれなければサーバ主導でクローズできると思うのですが、Content-Lengthが自動で負荷されてしまうのを止める方法はないでしょうか?
できれば、ASP.NET側だけで解決したいと思っています。
---------------------------------------
(追記)
クライアントもサーバもConnectionヘッダを付けないことで、(HTTP/1.1なので)自動的に持続的接続になることは確認できました。
しかし、HTTPS通信にすると毎回クライアント側から切ってしまうようです。これはどうしたものでしょう。