Client Site: Windows form

Server Site: .net 2.0 asmx. IIS 7, wins 2008 R2.

First Call Defination: IIS Restarted or app pool recycled.

The first call to web service hosted in IIS is alwasy slow, it takes around 20 plus seconds.

subsequent calls are quick, less than 1 second. A fresh instance of client app also perform same (quick).

I have set the useDefaultWebProxy = false, bypassProxyOnLocal = true at client app.config which i understand from variuos sources in internet.

I did a testing by running the client app(first call to webservice) in Client PC, and as expected it is slow. and then i ran the client app(2nd call to webservice) in Server PC, it is quick. 

This is true at the other way round, if the client app get executed in Server first(first call, it's slow), the second time running the Client App(2nd calls) in client PC is quick.

From the above scenerio, im trying to say that the network proxy might not be the issue here.. 

I've set the "Generete serialization assembly" to On as well at the Properties of the web service project.

Is there anyway to improve this?