The underlying connection was closed

K

kirk

Environment:
c#, Framwork 2.0, Win2003 server, IIS 6.0, Copy deployment (uncompiled
source code deployed to server)

I have written a web service that calls another web service. The ws I am
calling is third party, but written in .net (unknown framework version). I
am calling the 3rd party ws over https.
When my ws is called without ssl everything works great. However, when my
client is calling my ws using https, I get the following error:

The underlying connection was closed: An unexpected error occurred on a
receive.
System.Net.WebResponse GetWebResponse(System.Net.WebRequest)
....

I won't post the entire stack trace for size reasons.
The error will only pop up after a number of days of everything working just
fine. No changes on the server or the source code.

I have seen a number of 'solutions' to this problem, but they all apply to
1.0 and 1.1 frameworks. Does anyone know why this is happening and what I
can do about it in 2.0?

Thanks

Kirk
 
J

John Saunders [MVP]

kirk said:
Environment:
c#, Framwork 2.0, Win2003 server, IIS 6.0, Copy deployment (uncompiled
source code deployed to server)

I have written a web service that calls another web service. The ws I am
calling is third party, but written in .net (unknown framework version).
I am calling the 3rd party ws over https.
When my ws is called without ssl everything works great. However, when my
client is calling my ws using https, I get the following error:

The underlying connection was closed: An unexpected error occurred on a
receive.
System.Net.WebResponse GetWebResponse(System.Net.WebRequest)
...

I won't post the entire stack trace for size reasons.
The error will only pop up after a number of days of everything working
just fine. No changes on the server or the source code.

I have seen a number of 'solutions' to this problem, but they all apply to
1.0 and 1.1 frameworks.

What did those solutions say was the cause of the problem?
Does anyone know why this is happening and what I can do about it in 2.0?

I don't know for sure what's happening, but does your web server have SSL
configured?
 
K

kirk

John,

1) The solutions I was finding on the web were all based on the 1.1 and 1.0
framework. They involved tweaking the resource.cs file by overriding the
WebRequest method and setting the KeepAlive = false. Basicly, force the
creation of a new connection for every request. I guess that MS had a
support item on it at
'http://support.microsoft.com/default.aspx?scid=kb;en-us;819450' but
they have since removed the topic.
I can't follow the recommend because in VS 2005, there is no resource.cs
file any more. this file is generated on the fly by the .net framework
after deployment.

2) the web service is configured for ssl using a purchased certificate.
When my client hits my ws using https, my call to the 3rd party ws fails
with the error stated. If I allow my client to hit my ws without ssl, my
call to the 3rd party ws works just fine. In both cases I am hitting the
3rd party ws using ssl.

Kirk
 
J

John Saunders [MVP]

kirk said:
John,

1) The solutions I was finding on the web were all based on the 1.1 and
1.0 framework. They involved tweaking the resource.cs file by overriding
the WebRequest method and setting the KeepAlive = false. Basicly, force
the creation of a new connection for every request. I guess that MS had a
support item on it at
'http://support.microsoft.com/default.aspx?scid=kb;en-us;819450' but
they have since removed the topic.
I can't follow the recommend because in VS 2005, there is no resource.cs
file any more. this file is generated on the fly by the .net framework
after deployment.

2) the web service is configured for ssl using a purchased certificate.
When my client hits my ws using https, my call to the 3rd party ws fails
with the error stated. If I allow my client to hit my ws without ssl, my
call to the 3rd party ws works just fine. In both cases I am hitting the
3rd party ws using ssl.

Your call to the 3rd party ws should be independent of how your ws was
called. The information that you were called over an SSL connection simply
should not be able to flow to the call on the 3rd party ws.

Unless, that is, you're doing something to couple the two. For instance, are
you using properties of the Request to set parameters for the call to the
3rd party ws? Look for any way that the information could be leaking from
the call to your client into the call to the other ws.
 
K

kirk

John,

Thanks for the help. your last post prompted me to look deeper at what what
going on.
It turns out that I had a custom component I had written named security.dll
which was conflicting with another Security namespace used by the webserice
I was calling. I renamed the component and the namespaces in it,
recompiled, then after a little play got it working.
Again, thank you.

Kirk
 

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

Members online

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,705
Latest member
Stefkari24

Latest Threads

Top