Web Services client software has substantial delay on startup

  • Thread starter David J. Berman
  • Start date
D

David J. Berman

Hello, I'm using Visual Studio .NET 2005 with .NET framework v2.0, Windows
2003 Server.

As a consultant I am developing client software on the above platform for
several different clients. All software that I'm creating that makes any web
services calls whatsoever have a substantial client-side delay when the first
web service call is made. There must be some sort of start-up overhead
associated with the code.

I'm creating my proxy classes by using the add web reference feature in
Visual Studio.

If I make a simple client software that does something like a Login (Enter
username and password, request an authentication code, and then do some sort
of request...) the first call takes a very long time, consistantly about 15
seconds, and after that things are very fast.

I develop using several computers for many clients at many locations but
always I have this same behavior with all client software I'm writing using
these tools.

Can anyone shed some light on this? Is there a way to reduce the startup
time associated with my first webservices call? Thank you.

David
 
J

John Saunders [MVP]

David J. Berman said:
Hello, I'm using Visual Studio .NET 2005 with .NET framework v2.0, Windows
2003 Server.

As a consultant I am developing client software on the above platform for
several different clients. All software that I'm creating that makes any
web
services calls whatsoever have a substantial client-side delay when the
first
web service call is made. There must be some sort of start-up overhead
associated with the code.

I'm creating my proxy classes by using the add web reference feature in
Visual Studio.

If I make a simple client software that does something like a Login (Enter
username and password, request an authentication code, and then do some
sort
of request...) the first call takes a very long time, consistantly about
15
seconds, and after that things are very fast.

I develop using several computers for many clients at many locations but
always I have this same behavior with all client software I'm writing
using
these tools.

Can anyone shed some light on this? Is there a way to reduce the startup
time associated with my first webservices call? Thank you.

The start-up delay is associated with the startup of the AppDomain the
service is located in, JIT compilation, etc.

The only way to avoid it would be to issue a call to the web service when
the system starts, and whenever the AppDomain unloads due to the idle timer
on the application pool it's running in.
 
D

David J. Berman

Thank you for your response. However, this doesn't seem to answer my
question. The delay isn't happening on the server side, it's happening on
the client side.

I can demonstrate as follows:
Set up debug session of client software. Setup simultainious debug session
of web service by using a second computer.
A) Start client. Client issues first call to web service, experiences 15
second delay before breakpoint is hit on the server.
B) Issue second request on client side. Breakpoint is hit on server
instantly.
C) Shut down client.
D) Restart client, client issues first call to the same web service. Again,
15 second delay transpires before the breakpoint is hit on web service.

Second test:
A) On computer A, connect client to web service. Client issues first
request, experiences 15 second delay.
B) On Compuber B, connect same client to web service. Client issues the
same first request as step A, also experiences 15 second delay.

This happens every single time I create an application that consumes any web
service, and it happens on the client side. After the first request completes
everything is very fast.

Is there anything I can do to eliminate this startup delay?

Thank you.

David




--
DavidJBerman.com
<a href="http://www.davidjberman.com" target="_blank" title="David
Berman">Visit David Berman</a>
 
J

John Saunders [MVP]

David J. Berman said:
Thank you for your response. However, this doesn't seem to answer my
question. The delay isn't happening on the server side, it's happening on
the client side.

I can demonstrate as follows:
Set up debug session of client software. Setup simultainious debug
session
of web service by using a second computer.
A) Start client. Client issues first call to web service, experiences 15
second delay before breakpoint is hit on the server.
B) Issue second request on client side. Breakpoint is hit on server
instantly.
C) Shut down client.
D) Restart client, client issues first call to the same web service.
Again,
15 second delay transpires before the breakpoint is hit on web service.

Second test:
A) On computer A, connect client to web service. Client issues first
request, experiences 15 second delay.
B) On Compuber B, connect same client to web service. Client issues the
same first request as step A, also experiences 15 second delay.

This happens every single time I create an application that consumes any
web
service, and it happens on the client side. After the first request
completes
everything is very fast.

Is there anything I can do to eliminate this startup delay?

That's really _not_ the problem I was talking about!

Can you reproduce this delay with a "hello, world" service? I suspect you'll
find that it's something specific to your service. It's not the usual
behavior.
 
E

Egghead

Hmm, it seems that it is the security setting on the networking or PC in the
client-side (may be in the server-side).
You must have few PCs sitting at your own office, make a hello web service
on one of them, and you can find out you do not have that dely at all.
 
P

Pseudo

I'm seeing the exact same behaviour.

A simple "Hello World" web service on my server shows about a 15 second
delay on the client's first call.

Any of the services on that server have the delay on the first call and then
any other call is very quick.

If I use the web interface directly on the server, there is never any delay.

One thing to note is that I also have a vpn connection to the site with the
server. I'm guessing maybe it may be trying to establish some sort of
Windows authentication and timing out before allowing the first call.

I'll do as you suggest and try a local "Hello World" application.

Bryan
 
P

Pseudo

I ran the same service on my development machine and no delay on any of the
calls.





Pseudo said:
I'm seeing the exact same behaviour.

A simple "Hello World" web service on my server shows about a 15 second
delay on the client's first call.

Any of the services on that server have the delay on the first call and then
any other call is very quick.

If I use the web interface directly on the server, there is never any delay.

One thing to note is that I also have a vpn connection to the site with the
server. I'm guessing maybe it may be trying to establish some sort of
Windows authentication and timing out before allowing the first call.

I'll do as you suggest and try a local "Hello World" application.

Bryan
 
T

TimG

A slowdown that I experienced (wasn't 15 seconds but more like 4-5 seconds in
my case) was the executable searching for a xmlserializers assembly (it also
raises FileNotFound exceptions within the debugger). Once I changed the
project's Compile | Advanced Compiler Settings | Generate serialization
assemblies from Auto to On the delay went away (of course you have to include
the assembly in your deployment). In my case, I do not know why Auto wasn't
automatically creating the assembly, just that On did create the assembly.

See http://msdn2.microsoft.com/EN-US/library/bk3w6240(vs.80).aspx for more
information.
 

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

No members online now.

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,710
Latest member
bernietqt

Latest Threads

Top