Closing web service client does not close connection - but can it be done manually?

When I close my web service client (by calling .Close( )  ) it does not close the underlying socket connection on the server, but leaves it in a TIME_WAIT state:

 TCP    [::1]:64844            [::1]:65119            TIME_WAIT       0

This is not a bug, it is by design.  Under normal conditions, this is not a problem.  But when the application is scaled up, we begin to experience problems because new connections are not being released fast enough to accommodate the new web service method calls.

My research has indicated that the minimum time setting "clean up" old socket connections is 30 seconds.

We've also doubled the number of available connections.

For now the doubling of the connections seems to be alleviating the problem.

We understand that the web service seems to not be able close the connection manually.

My question is - how might we close the connection manually?


I know that the reason the connection will not close sooner than it does is because it is waiting for any packets that may arrive out of order.  And, the OS wants to ensure that a packet intended for a connection that is closed does not get processed by a connection that is still open.

That works for the OS, but it does not work for our needs.  We are writing the code so we know when the work is done and the connection can be closed.  If we could reduce the amount of time below 30 seconds - say down to 5 seconds - that might be an okay alternative.


I want to explore this as an option.
LVL 5
Tom KnowltonWeb developerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

apeterCommented:
Hope you are calling async. calls as much as possible to manange the connection problems.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Tom KnowltonWeb developerAuthor Commented:
I can check on this.  The system has been in place for a while, so I would imagine this has been addressed at some point.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
WCF

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.