Connecting Tech Pros Worldwide Forums | Help | Site Map

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

JD
Guest
 
Posts: n/a
#1: Nov 21 '05
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





Eric
Guest
 
Posts: n/a
#2: Nov 21 '05

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


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:<uNhaRzRaEHA.752@TK2MSFTNGP09.phx.gbl>...[color=blue]
> 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[/color]
Sami Vaaraniemi
Guest
 
Posts: n/a
#3: Nov 21 '05

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


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:uNhaRzRaEHA.752@TK2MSFTNGP09.phx.gbl...[color=blue]
> 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[/color]
request.[color=blue]
> I've seen it start happening after a week, and then sometimes after a[/color]
couple[color=blue]
> of months, pretty random. If I kill the ASP.NET process, all is well[/color]
again.[color=blue]
>
> I created an ASPX file that does various tests while the ASP.NET process[/color]
is[color=blue]
> 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[/color]
able[color=blue]
> to retrieve web service's method descriptions and soap message layout.[/color]
This[color=blue]
> 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[/color]
file[color=blue]
> 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[/color]
server[color=blue]
> 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[/color]
at[color=blue]
> 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[/color]
should[color=blue]
> be doing a dispose or close of some sort but it doesn't look like I need[/color]
to.[color=blue]
> 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[/color]
is[color=blue]
> either deadlocked or in a bad state. Any ideas?
>
> TIA
> JD
>[/color]


Closed Thread