WinInet设置会话超时

时间:2013-06-06 01:53:36

标签: wininet

我在C / C ++应用程序中使用WinInet连接到ASP.NET Web服务。 我想增加我的SESSION TIMEOUT时间。 目前某种程度上SESSION超时是20分钟,我想把它增加到50分钟。 它用于

中的选项INTERNET_OPTION_XXXXX使用哪个选项
InternetSetOption(hInstance, INTERNET_OPTION_XXXXX,(LPVOID) &timeout, sizeof(timeout));

2 个答案:

答案 0 :(得分:0)

与具有WinHttpSetTimeouts的WinHTTP不同,WinINet上没有可用的等效函数。

答案 1 :(得分:0)

我意识到这是一个老问题,但是似乎没有关于如何在 SO 上执行此操作的信息。所以我发布这个以防有人想知道如何使用 WinINet 设置超时。

通常情况下,您会将 INTERNET_OPTION_CONNECT_TIMEOUTINTERNET_OPTION_RECEIVE_TIMEOUTINTERNET_OPTION_SEND_TIMEOUTInternetSetOption 一起使用。有关选项标志的详细信息,请参见此处:https://docs.microsoft.com/en-us/windows/win32/wininet/option-flags

然而,有一个错误似乎 MS 已经有大约 20 年没有修复了。上面的超时标志根本不起作用。

所以解决这个问题的方法是创建第二个工作线程来监视连接请求。如果第二个请求在超时设置中没有收到来自服务器的响应,它将终止主连接请求。有关详细信息和示例,请参阅此 MS KB 文章: https://mskb.pkisolutions.com/kb/224318