By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,239 Members | 1,503 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,239 IT Pros & Developers. It's quick & easy.

webreq.getresponse exceptions

P: n/a
cj
VB 2003
I have a programs that accepts TCPIP requests and processes them. A
thread is created to handle each TCPIP connection. Part of handling the
request is involves making a webrequest.

webReq = Net.HttpWebRequest.Create(URL)
webReq.Timeout = 60000
webResp = webReq.GetResponse

This has been working fine for 6 months or more handling maybe 50
simultaneous requests but now the traffic has picked up substantially.
It might be handling 150 requests simultaneously. I'm beginning to get
exceptions thrown making the web request. I get either of these

The operation has timed-out.
The underlying connection was closed: The request was canceled.

The operation has timed-out exception is probably because it went over 1
minute and I have to have some sort of timeout because the TCPIP request
I got initially is waiting on it's reply and will not wait for long.

I don't know if the second exception is something I can do anything
about or if it is web server related. Any ideas?
Oct 28 '06 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Hi cj,

Based on the code snippet you have provided, I didn't see the code that
you're closing the underlying connection. Usually, people forget that the
underlying connection created by the request is not freed up,unless you
call Close() on the response. So, you hit the connection limit, and no more
webrequests will go through. Please call Response.Close() to close it when
it is used.

You can check the following link for more information.

http://blogs.msdn.com/feroze_daud/ar.../21/61400.aspx

If this still doesn't help, you may be facing a performance issue for your
ASP.NET app. Please check the following KB article for how to do
performance tuning on this issue.

http://support.microsoft.com/kb/821268/en-us

Kevin Yu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Oct 30 '06 #2

P: n/a
cj
Kevin,

Yes, I close the connection. I only wanted to show the command I used
to contact the server.

Also I'm told the server I'm contacting has no set limit on it's
connections.

My program, this one we are talking about, is not ASP.NET. I guess you
know that. It is just a Windows program. I believe the web server is
running ASP.NET code and that could be the problem but I didn't write
that program. If you have suggestions on what the problem could be on
the web server side I can pass them on to the folks working on that program.

Here a small section of my actual code.
Try
Dim webReq As Net.HttpWebRequest
Dim webResp As Net.HttpWebResponse
Dim URL As String =
"http://192.168.168.142/validate/validate.aspx?" & _
iElement(3) & _
"&submit_by=R" & _
"&" & iElement(2)

webRespStr = ""
webReq = Net.HttpWebRequest.Create(URL)
webReq.Timeout = 15000
Try
webResp = webReq.GetResponse
Catch ex As Exception
LoopErrMsg += (deleted extra stuff here
for this email)
End Try

webResp.Close()

(deleted extra stuff here for this email)

Catch ex As Exception
LoopErrMsg += (deleted extra stuff here for
this email)
End Try

Kevin Yu [MSFT] wrote:
Hi cj,

Based on the code snippet you have provided, I didn't see the code that
you're closing the underlying connection. Usually, people forget that the
underlying connection created by the request is not freed up,unless you
call Close() on the response. So, you hit the connection limit, and no more
webrequests will go through. Please call Response.Close() to close it when
it is used.

You can check the following link for more information.

http://blogs.msdn.com/feroze_daud/ar.../21/61400.aspx

If this still doesn't help, you may be facing a performance issue for your
ASP.NET app. Please check the following KB article for how to do
performance tuning on this issue.

http://support.microsoft.com/kb/821268/en-us

Kevin Yu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Oct 30 '06 #3

P: n/a
cj
Ooops, I deleted a line by accident when removing extra junk from my
code to post. just before webresp.close() is the line

webrespstr = new io.streamreader(webresp.getresponsestream).readtoe nd
Sorry for the confusion.

cj wrote:
Kevin,

Yes, I close the connection. I only wanted to show the command I used
to contact the server.

Also I'm told the server I'm contacting has no set limit on it's
connections.

My program, this one we are talking about, is not ASP.NET. I guess you
know that. It is just a Windows program. I believe the web server is
running ASP.NET code and that could be the problem but I didn't write
that program. If you have suggestions on what the problem could be on
the web server side I can pass them on to the folks working on that
program.

Here a small section of my actual code.
Try
Dim webReq As Net.HttpWebRequest
Dim webResp As Net.HttpWebResponse
Dim URL As String =
"http://192.168.168.142/validate/validate.aspx?" & _
iElement(3) & _
"&submit_by=R" & _
"&" & iElement(2)

webRespStr = ""
webReq = Net.HttpWebRequest.Create(URL)
webReq.Timeout = 15000
Try
webResp = webReq.GetResponse
Catch ex As Exception
LoopErrMsg += (deleted extra stuff here
for this email)
End Try

webResp.Close()

(deleted extra stuff here for this email)

Catch ex As Exception
LoopErrMsg += (deleted extra stuff here for
this email)
End Try

Kevin Yu [MSFT] wrote:
>Hi cj,

Based on the code snippet you have provided, I didn't see the code
that you're closing the underlying connection. Usually, people forget
that the underlying connection created by the request is not freed
up,unless you call Close() on the response. So, you hit the connection
limit, and no more webrequests will go through. Please call
Response.Close() to close it when it is used.

You can check the following link for more information.

http://blogs.msdn.com/feroze_daud/ar.../21/61400.aspx

If this still doesn't help, you may be facing a performance issue for
your ASP.NET app. Please check the following KB article for how to do
performance tuning on this issue.

http://support.microsoft.com/kb/821268/en-us

Kevin Yu
Microsoft Online Community Support

================================================= =
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif

ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent
issues where an initial response from the community or a Microsoft
Support Engineer within 1 business day is acceptable. Please note that
each follow up response may take approximately 2 business days as the
support professional working with you may need further investigation
to reach the most efficient resolution. The offering is not
appropriate for situations that require urgent, real-time or
phone-based interactions or complex project analysis and dump analysis
issues. Issues of this nature are best handled working with a
dedicated Microsoft Support Engineer by contacting Microsoft Customer
Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
================================================= =

(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Oct 30 '06 #4

P: n/a
Hi cj,

Based on my experience, this has to be a server side issue. The web server
cannot support so many concurrent requests.

Although you have check that IIS doesn't have a limitation on connections,
the ASP.NET has some limitations set in the configuration file. I think you
have to tune the performance on the server according to the following KB
article

http://support.microsoft.com/kb/821268/en-us

This article is for ASP.NET 1.1. However, you can also use this in ASP.NET
2.0. The 2.0 machine.config file doesn't have the default value set. You
can add the keys and values manually.

Kevin Yu
Microsoft Online Community Support
==================================================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Oct 31 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.