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

Web Service Hangs (Other Post may not have Subject Line, Sorry)

P: n/a
JD
Hello,

I'm experiencing a problem that I'm hoping someone might be able to shed
some light on.

I have an ASP.NET page on a Windows 2000 machine that makes web service
calls to a .NET web service. Once in a while the ASP.NET process gets to a
state where the web service call to the web service hangs and then does a
timeout. While the ASP.NET process is in this state, looking at the TCP
connections, the TCP connection never shows up for the web service request.
I've seen it start happening after a week, and then sometimes after a couple
of months, pretty random. If I kill the ASP.NET process, all is well again.

I created an ASPX file that does various tests while the ASP.NET process is
in this state and here are some of the results:
- If I hit the web service with a browser from the ASP.NET machine its able
to retrieve web service's method descriptions and soap message layout. This
does not involve my ASPX test file. Looking at the TCP connections, the
connection shows up.
- If I do a HTTP web request to the web service from the ASPX file that is
run inside the problem ASP.NET process, it hangs and times out. Looking at
the TCP connections, it does not show up at all.
- If I do any HTTP web request to the web service server from the ASPX file
that is run inside the problem ASP.NET process, it hangs and times out.
Looking at the TCP connections, it does not show up at all.
- If I do a HTTP web request to any other server than the web service server
from the ASPX file that is run inside the problem ASP.NET process, it
succeeds. Looking at the TCP connections, the connection shows up.
- If I do a TCP connect on port 80 to the web service server from the ASPX
file that is run inside the problem ASP.NET process, it succeeds. Looking at
the TCP connections, the connection shows up.

The code that does the web service call uses the Visual Studio
auto-generated proxy. At first I looked at the proxy code to see if I should
be doing a dispose or close of some sort but it doesn't look like I need to.
If I had to guess it looks like there is some sort of pooling going on
within the HTTP library, and what ever is getting pooled for that server is
either deadlocked or in a bad state. Any ideas?

TIA
JD


Nov 21 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
JD,
I am facing the same problem. Have you found a resolution or at least
more details on a specific cause?

TIA,
Eric

"JD" <no@address.org> wrote in message news:<uN*************@TK2MSFTNGP09.phx.gbl>...
Hello,

I'm experiencing a problem that I'm hoping someone might be able to shed
some light on.

I have an ASP.NET page on a Windows 2000 machine that makes web service
calls to a .NET web service. Once in a while the ASP.NET process gets to a
state where the web service call to the web service hangs and then does a
timeout. While the ASP.NET process is in this state, looking at the TCP
connections, the TCP connection never shows up for the web service request.
I've seen it start happening after a week, and then sometimes after a couple
of months, pretty random. If I kill the ASP.NET process, all is well again.

I created an ASPX file that does various tests while the ASP.NET process is
in this state and here are some of the results:
- If I hit the web service with a browser from the ASP.NET machine its able
to retrieve web service's method descriptions and soap message layout. This
does not involve my ASPX test file. Looking at the TCP connections, the
connection shows up.
- If I do a HTTP web request to the web service from the ASPX file that is
run inside the problem ASP.NET process, it hangs and times out. Looking at
the TCP connections, it does not show up at all.
- If I do any HTTP web request to the web service server from the ASPX file
that is run inside the problem ASP.NET process, it hangs and times out.
Looking at the TCP connections, it does not show up at all.
- If I do a HTTP web request to any other server than the web service server
from the ASPX file that is run inside the problem ASP.NET process, it
succeeds. Looking at the TCP connections, the connection shows up.
- If I do a TCP connect on port 80 to the web service server from the ASPX
file that is run inside the problem ASP.NET process, it succeeds. Looking at
the TCP connections, the connection shows up.

The code that does the web service call uses the Visual Studio
auto-generated proxy. At first I looked at the proxy code to see if I should
be doing a dispose or close of some sort but it doesn't look like I need to.
If I had to guess it looks like there is some sort of pooling going on
within the HTTP library, and what ever is getting pooled for that server is
either deadlocked or in a bad state. Any ideas?

TIA
JD

Nov 21 '05 #2

P: n/a
This is just a wild guess, but it sounds like you might be running into the
"at most two outbound connections from one client to the same HTTP server"
limitation (as per HTTP 1.1 specification). To work around the problem you
can try increasing this value from 2 through the maxconnection attribute in
web.config.

Note that increasing the value does not really solve the problem, it merely
postpones it.

The outbound connection limit could be causing the problem because if the
web page request (which is making the outbound web service call) times out
before the web service call completes, then it might leak the socket. If
this happens twice, then the next outbound call to the same web service will
block until the web application is restarted.

If this indeed is the source of the problem, to really solve it, apply the
recommendations in [1] to make sure the outbound web service calls get
cleaned up properly.

[1]
http://msdn.microsoft.com/library/de...netchapt10.asp
(the section about Timeouts).

Regards,
Sami

"JD" <no@address.org> wrote in message
news:uN*************@TK2MSFTNGP09.phx.gbl...
Hello,

I'm experiencing a problem that I'm hoping someone might be able to shed
some light on.

I have an ASP.NET page on a Windows 2000 machine that makes web service
calls to a .NET web service. Once in a while the ASP.NET process gets to a
state where the web service call to the web service hangs and then does a
timeout. While the ASP.NET process is in this state, looking at the TCP
connections, the TCP connection never shows up for the web service request. I've seen it start happening after a week, and then sometimes after a couple of months, pretty random. If I kill the ASP.NET process, all is well again.
I created an ASPX file that does various tests while the ASP.NET process is in this state and here are some of the results:
- If I hit the web service with a browser from the ASP.NET machine its able to retrieve web service's method descriptions and soap message layout. This does not involve my ASPX test file. Looking at the TCP connections, the
connection shows up.
- If I do a HTTP web request to the web service from the ASPX file that is
run inside the problem ASP.NET process, it hangs and times out. Looking at
the TCP connections, it does not show up at all.
- If I do any HTTP web request to the web service server from the ASPX file that is run inside the problem ASP.NET process, it hangs and times out.
Looking at the TCP connections, it does not show up at all.
- If I do a HTTP web request to any other server than the web service server from the ASPX file that is run inside the problem ASP.NET process, it
succeeds. Looking at the TCP connections, the connection shows up.
- If I do a TCP connect on port 80 to the web service server from the ASPX
file that is run inside the problem ASP.NET process, it succeeds. Looking at the TCP connections, the connection shows up.

The code that does the web service call uses the Visual Studio
auto-generated proxy. At first I looked at the proxy code to see if I should be doing a dispose or close of some sort but it doesn't look like I need to. If I had to guess it looks like there is some sort of pooling going on
within the HTTP library, and what ever is getting pooled for that server is either deadlocked or in a bad state. Any ideas?

TIA
JD

Nov 21 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.