I have been working on this problem for several days, and would greatly appreciate any advice I can receive. We have an ASP page that calls a .NET web service we have developed in C++. When we query the web service directly through the generated ASMX file we get the expected XML response. It always works!
However, the same queries under the same conditions from our ASP page will sometimes fail. When it does we get the error... "The data necessary to complete this operation is not yet available." We do know that the request can take up to 30 seconds to process, but the ASMX just waits until it receives results. Whereas our code does not, even with timeouts for every object we touch set to very high values.
We are using MSXML v4.0 with the latest service pack. The underlying WinHTTP is version 5.1. In our ASP code we instantiate the ServerXMLHTTP.4.0 object. We call the open and send methods using a GET request. We have used the WinHTTP trace utility to look at what is hapenning when it breaks. The error lines are as follows:
12:16:33.687 ::*0000001* :: WinHttpSendRequest() returning TRUE
12:16:33.687 ::*0000001* :: WinHttpReceiveResponse(0x353d000, 0x0)
12:17:34.218 ::*0000001* :: Winsock/RPC/SSL/Transport error: 0x274c [WSAETIMEDOUT]
12:17:34.218 ::*0000001* :: WinHttpReceiveResponse: error 12002 [ERROR_WINHTTP_TIMEOUT]
12:17:34.218 ::*0000001* :: WinHttpReceiveResponse() returning FALSE
12:17:34.250 ::*0000001* :: IWinHttpRequest::Send() returning 2147954402 [?] (0x80072ee2)
We have tried raising the timeouts, but we still get this error. Also the trace reveals that the timeout is happening with one second of the query being initialized which leads us to believe this isn't just a simple timeout issue.
The strangest thing is that the ASMX always works, but when we look at the trace, there are no differences in how the request is handled. The ASMX file itself tells us a post is being issued, but the trace shows GET.
I tried to put all the information in here. I hope someone can help us out.