![]() |
|
|
|||||||
![]() |
ASP Net - HttpWebRequest The operation has timed-out |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
Posts: n/a
|
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 |
|
|
|
#2 |
|
Posts: n/a
|
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/de...p?f rame=true Solution found thanks to: http://blogs.msdn.com/feroze_daud/ar.../21/61400.aspx Regards, Manso |
|
|
|
#3 |
|
Junior Member
Join Date: Jul 2008
Posts: 1
|
Thanks a lot Monso for the solution.
I just would like to know more details about keepalive property of http request. |
|
|
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| synthesizable divide operation in VHDL | varshini | Hardware | 0 | 12-02-2008 05:55 AM |