我在C/ C++应用程序中使用WinInet连接到ASP.NET Web服务。我想增加会话超时时间。目前不知何故会话超时是20分钟,我想把它增加到50分钟。在中,将哪个选项用于选项INTERNET_OPTION_XXXXX
InternetSetOption(hInstance, INTERNET_OPTION_XXXXX,(LPVOID) &timeout, sizeof(timeout));发布于 2013-10-19 01:35:43
与具有WinHttpSetTimeouts的WinHTTP不同,在WinINet中没有可用的等效函数。
发布于 2021-06-15 19:19:12
我意识到这是一个古老的问题,但似乎没有关于如何做到这一点的信息。所以我把这篇文章贴出来,以防有人想知道如何用WinINet设置超时。
通常,您会将INTERNET_OPTION_CONNECT_TIMEOUT、INTERNET_OPTION_RECEIVE_TIMEOUT或INTERNET_OPTION_SEND_TIMEOUT与InternetSetOption一起使用。有关选项标志的详细信息,请参阅此处:https://docs.microsoft.com/en-us/windows/win32/wininet/option-flags
然而,有一个bug似乎是微软在大约20年内没有修复的。上面的超时标志根本不起作用。
因此,解决此问题的方法是创建第二个工作线程来监视连接请求。如果第二个请求在超时时间内没有收到来自服务器的响应,它将终止主连接请求。有关详细信息和示例,请参阅此MS知识库文章:https://mskb.pkisolutions.com/kb/224318
https://stackoverflow.com/questions/16952509
复制相似问题