• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:wininetのSendRequestでエラー)

wininetのSendRequestでエラー

このQ&Aのポイント
  • WininetのSendRequestを使用したプログラムでERROR_INVALID_HANDLEエラーが発生する
  • C++で作成されたプログラムで、Wininetを使用してHTTP通信を行っているが、一定時間通信をするとERROR_INVALID_HANDLEエラーが発生する
  • Windows7SP1環境で動作するプログラムで、WininetのSendRequestを使用して通信を行う際にERROR_INVALID_HANDLEエラーが出続ける

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

3日間も接続していたら その間にWebサーバーのメンテナンスやアップデートやログローテーションで再起動とかありませんかね。 もしくはネットワークのメンテナンスとか。

subarist0555
質問者

お礼

すみません、文章を入れて押したと思ったら別のボタンを押してたみたいで、反映さえてませんでした。 本件については、その後の内部調査で原因が判明しました。 原因は、上記で記載している「CHttpFile」のクラスを通信後に解放(削除)していなかった為、ゴミデータが溜まり続けてページファイルが圧迫された結果OSが通信を強制遮断していたみたいです。 お忙しいところ、連絡していただきありがとうございました。 本回答をベストアンサーとして、閉じさせてもらいます。

その他の回答 (1)

回答No.1

1回のTCP接続で複数のHTTPリクエストを処理できるようになったのはHTTP/1.1からのKeepAlive機能ですが、 KeepAliveのTimeout時間以上の間隔が空くと、 コネクションが自動的にCloseされますのでそれの関係ではないですか?

subarist0555
質問者

補足

連絡いただきありがとうございます。 それについては、こちらも可能性を考えて調査しました。結論としては、その可能性はなさそうと言う感じです。 事象発生時は、通信を開始してから端末が起動し続けて、約3日間通信を行っていましたが、通信間隔はこちらが設定した時間の±0.3秒以内で通信を継続しており、事象が発生した時もその中に納まっていました。 また、途中で何らかの負荷がかかったのか、1回だけ+3秒ほど間隔が空いた時がありましたが、そのタイミングでも問題なく通信を継続していた為、KeepAliveのTimeoutは可能性は低いとみています。

関連するQ&A