Do Web services have a lease time?

D

Deane

Is there a lease time on Web service requests?

We have a Web service that stops responding after a couple days.
After a certain point in time, all requests to it get "The operation
has timed out." It just happens suddenly, every 48 hours or so, and
all requests begin fail.

What's odd is that it appears to be client-specific. After this error
appears, you can still pull up the WSDL in a browser and it responds
fine (the browser, after all, is a new client to the Web service).

Additionally, once you restart IIS (on the client machine -- the
machine using the Web service), everything works fine again.

It's as if the Web service expires some kind of lease for the IIS
client and starts rejecting requests. By restarting IIS, it clears
some cache and it becomes a new client, with a new lease.

I'll looked around quite a bit, and the only reference I can find to
lease times is with .Net remoting. However, this is a Web service --
I'm not doing a .Net-to-.Net remote invocation of anything.

Any ideas?

Deane
 
?

=?ISO-8859-1?Q?G=F6ran_Andersson?=

Deane said:
Is there a lease time on Web service requests?
No.

We have a Web service that stops responding after a couple days.
After a certain point in time, all requests to it get "The operation
has timed out." It just happens suddenly, every 48 hours or so, and
all requests begin fail.

What's odd is that it appears to be client-specific. After this error
appears, you can still pull up the WSDL in a browser and it responds
fine (the browser, after all, is a new client to the Web service).

It's obviously not the web service that stops responding, it's the
client that stops working.

What are you using to call the web service, and what else is the client
doing that might fail?
 
J

Jesse Houwing

Hello Deane,
Is there a lease time on Web service requests?

No, there's no sucht thing
We have a Web service that stops responding after a couple days. After
a certain point in time, all requests to it get "The operation has
timed out." It just happens suddenly, every 48 hours or so, and all
requests begin fail.

What's odd is that it appears to be client-specific. After this error
appears, you can still pull up the WSDL in a browser and it responds
fine (the browser, after all, is a new client to the Web service).

Additionally, once you restart IIS (on the client machine -- the
machine using the Web service), everything works fine again.

It's as if the Web service expires some kind of lease for the IIS
client and starts rejecting requests. By restarting IIS, it clears
some cache and it becomes a new client, with a new lease.

I'll looked around quite a bit, and the only reference I can find to
lease times is with .Net remoting. However, this is a Web service --
I'm not doing a .Net-to-.Net remote invocation of anything.

Any ideas?

My guess would be an unproperly disposed/closed database connection or something
similar. It's my experience that it is almost always something like that...

Jesse
 
D

Deane

Thanks for the response.

The only thing this Web service does is accept a small XML file and
write it to the file system. That's it.

Additionally, the Web service works fine for 24 - 48 hours. Then it
starts timing out. When it does, no changes are made to the Web
service client or server. The IIS client is just restarted, and we're
back in business.

Deane
 
J

Jesse Houwing

Hello Deane,
Thanks for the response.

The only thing this Web service does is accept a small XML file and
write it to the file system. That's it.

Additionally, the Web service works fine for 24 - 48 hours. Then it
starts timing out. When it does, no changes are made to the Web
service client or server. The IIS client is just restarted, and we're
back in business.

If it's that simple, can you show us the code?

Jesse
 
D

Deane

Sure:

public void Receive(XmlDocument TheXml)
{
System.Guid Guid = System.Guid.NewGuid();

string Path =
ConfigurationManager.AppSettings["IncomingAppFolder"] +
Guid.ToString() + ".xml";

TheXml.Save(Path);
}

That's it.

Note too that the error returned is NOT bubbled up from the Web
service. It's not like the Web service throws an error and returns it
to the caller. Rather, the caller cannot contact the Web service
anymore -- the initial call to the service times out.

Until you bounce IIS (the IIS on the calling server, not the target),
then it starts working fine again.

Deane
 
D

Deane

All:

I think we can close this one. After some more debugging, I've
determined this is not a Web service problem, it's a connection
problem. When the Web service starts timing out, the IIS logs go
blank, so the request isn't even getting to IIS, much less the Web
service.

Beginning to think this has something to do with Keep-Alives. I have
now shut them off on the Web service IIS instance. Hoping that solves
my problem.

Deane



Sure:

public void Receive(XmlDocument TheXml)
{
System.Guid Guid = System.Guid.NewGuid();

string Path =
ConfigurationManager.AppSettings["IncomingAppFolder"] +
Guid.ToString() + ".xml";

TheXml.Save(Path);
}

That's it.

Note too that the error returned is NOT bubbled up from the Web
service. It's not like the Web service throws an error and returns it
to the caller. Rather, the caller cannot contact the Web service
anymore -- the initial call to the service times out.

Until you bounce IIS (the IIS on the calling server, not the target),
then it starts working fine again.

Deane

Hello Deane,
If it's that simple, can you show us the code?
 

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,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top