本文介绍了WinInet HttpSendRequest挂起SSL调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这种情况非常间歇地发生,可能每周一次. (该应用每天要发出数百个类似的请求.)

This happens very intermittently, maybe once a week. (The app is making hundreds of similar requests per day).

HttpSendRequest在获取https URL(GET请求)时挂起.挂起时-它永远不会返回.始终具有相同的调用堆栈.我们确实设置了INTERNET_OPTION_CONNECT_TIMEOUT,INTERNET_OPTION_RECEIVE_TIMEOUT和INTERNET_OPTION_SEND_TIMEOUT.

HttpSendRequest hangs on fetching an https URL (GET request). When it hangs - it never returns. Always with the same call stack. We do set INTERNET_OPTION_CONNECT_TIMEOUT, INTERNET_OPTION_RECEIVE_TIMEOUT and INTERNET_OPTION_SEND_TIMEOUT.

这是在Windows XP SP3上. IE版本8.0.6001.18702. WinInet.dll版本8.0.6001.18806.有任何想法吗?谢谢!

This is on Windows XP SP3. IE version 8.0.6001.18702. WinInet.dll version 8.0.6001.18806. Any ideas? Thank you! 

调用堆栈:

	ntdll.dll!_KiFastSystemCallRet@0()
 	ntdll.dll!_ZwWaitForSingleObject@12()  + 0xc bytes
 	mswsock.dll!_SockWaitForSingleObject@16()  + 0x3c9 bytes
 	mswsock.dll!_WSPRecv@36()  + 0x148f bytes
 	ws2_32.dll!_recv@16()  + 0x6f bytes
 	wininet.dll!ICSocket::Receive_Continue()  + 0x90 bytes
 	wininet.dll!ICSocket::Receive_Start()  + 0x60 bytes
 	wininet.dll!CFsm_SocketReceive::RunSM()  + 0x1c bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!ICSocket::Receive()  + 0x3a bytes
 	wininet.dll!ICSecureSocket::NegotiateLoop_Fsm()  + 0x1b1 bytes
 	wininet.dll!CFsm_NegotiateLoop::RunSM()  + 0x29 bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!ICSecureSocket::SSPINegotiateLoop()  + 0x37 bytes
 	wininet.dll!ICSecureSocket::SecureNegotiate_Fsm()  - 0x11 bytes
 	wininet.dll!CFsm_SecureNegotiate::RunSM()  + 0x29 bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!ICSecureSocket::NegotiateSecConnection()  + 0x2b bytes
 	wininet.dll!ICSecureSocket::SecureHandshake_Fsm()  + 0x13c4 bytes
 	wininet.dll!CFsm_SecureHandshake::RunSM()  + 0x31 bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!ICSecureSocket::SecureHandshakeWithServer()  + 0x2b bytes
 	wininet.dll!ICSecureSocket::Connect_Fsm()  + 0x80 bytes
 	wininet.dll!CFsm_SecureConnect::RunSM()  + 0x37 bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!ICSecureSocket::Connect()  + 0x12ada bytes
 	wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::OpenConnection_Fsm()  + 0x11602 bytes
 	wininet.dll!CFsm_OpenConnection::RunSM()  + 0x1c bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::OpenConnection()  + 0x2b bytes
 	wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::MakeConnection_Fsm()  + 0x7a bytes
 	wininet.dll!CFsm_MakeConnection::RunSM()  + 0x1d bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::SendRequest_Fsm()  + 0xaf bytes
 	wininet.dll!CFsm_SendRequest::RunSM()  + 0x1d bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Start()  + 0x19d bytes
 	wininet.dll!CFsm_HttpSendRequest::RunSM()  + 0x31 bytes
 	wininet.dll!CFsm::Run()  + 0x26 bytes
 	wininet.dll!DoFsm()  + 0x25 bytes
 	wininet.dll!HttpWrapSendRequest()  + 0x25d89 bytes
 	wininet.dll!_HttpSendRequestA@20()  + 0x1d bytes

推荐答案


这篇关于WinInet HttpSendRequest挂起SSL调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 19:55
查看更多