问题描述
这种情况非常间歇地发生,可能每周一次. (该应用每天要发出数百个类似的请求.)
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调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!