HttpWebRequest The operation has timed-out


G

Guest

Hi,

I have an ASP.NET 1.1 app running on Windows XP SP2 that is requesting
information from a WebService which works just fine. Another part of the app
is doing a server-side post to antoher system using HttpWebRequest. Code as
follows:

==============================
Dim objWebReq As HttpWebRequest
Dim objStream As Stream
Dim strData As String
Dim arrPostArray As Byte()

'Construct form data
strData = "field1=x&field2=y"
arrPostArray = System.Text.Encoding.ASCII.GetBytes(strData)

objWebReq = WebRequest.Create("http://www.xx.yy/page.aspx")
objWebReq.Method = "POST"
objWebReq.KeepAlive = False
objWebReq.ContentType = "application/x-www-form-urlencoded"
objWebReq.ContentLength = arrPostArray.Length

'Maintain between state calls
If Not Session("comsess") Is Nothing Then
objWebReq.CookieContainer = CType(Session("comsess"),
System.Net.CookieContainer)
End If

objStream = objWebReq.GetRequestStream
objStream.Write(arrPostArray, 0, arrPostArray.Length)
objStream.Close
==============================

This works fine but suddenly subsequent WebService calls bombs out with:

==============================
System.Net.WebException: The operation has timed-out.

Line 47: Dim results() As Object = Me.Invoke("RetrieveData", New Object()
{strArg1, strArg2})
==============================

Feels like something doesn't get closed in the HttpWebRequest and clogs up
the following WebService call. I can't find any method to close it with. KB
http://support.microsoft.com/kb/821268 is talking about this problem but it
happens after just one post and it feels like something else goes wrong. The
reason we're using HttpWebRequest instead of WebClient is because WebClient
doesn't support CookieContainer.

I'm really grateful for any and all help with this issue.

Many thanks,
Manso
 
Ad

Advertisements

G

Guest

Ok, I found the solution (which wasn't obvious). The problem is that I didn't
take care of and closed the response stream. Adding these lines:

objWebRes = objWebReq.GetResponse
objWebRes.Close

at the end made it work. The confusing thing here is that many of the
examples in the HttpWebRequest documentation are faulty, e.g.

http://msdn.microsoft.com/library/d...HttpWebRequestClassMethodTopic.asp?frame=true

Solution found thanks to:

http://blogs.msdn.com/feroze_daud/archive/2004/01/21/61400.aspx

Regards,
Manso
 
Ad

Advertisements

Joined
Jul 25, 2008
Messages
1
Reaction score
0
Thanks a lot Monso for the solution.
I just would like to know more details about keepalive property of http request.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top