Hi,
As a last option i think you should go for compression as you are saying in
some calls data returned is about 2.5mb.In web services you use soap
extension to compress soap messages/data.Google for soap extension/process
message/webservices/compression and i am sure yiu will get complete working
code for compression in web services.You can also use gzip.dll found in
system32 folder for compression.If still you are not able to work around then
let me.I will try to provide complete working code for compression in web
services.
Thanks and Regards,
manish bafna
[quoted text, click to view] "lowlyscrub" wrote:
> I have an ASP.NET application that makes 12 different web service calls
> from a single method call. Each of the web services themselves don't
> do much more than run a small query (I've run the queries elsewhere and
> they complete virtually instantaneously) on some database and return a
> dataset. As it so happens, the 12 calls are split up between 4
> different web services on the same server, and the web services
> themselves are ASP.NET apps built in C#. Anyway, I know that each
> individual call usually returns in less than 10 seconds (first call).
> I encounter problems only when I try to call them one after another in
> my application.
>
> The code looks something like this:
> // create proxy objects
> WSa.WebService a = new WSa.WebService();
> ....
> WSd.WebService d = new WSd.WebService();
>
> // Fill up datasets with web service calls
> DataSet ds1 = a.Call1();
> DataSet ds2 = a.Call2();
> ....
> DataSet ds7 = c.Call(1);
> ....
> DataSet ds12 = d.Call3();
>
> // Do other processing with data
> ....
>
> The most time-consuming call returns a chunk of data on the order of
> 2.5MB in size, but most of the SOAP messages returned are less than
> 150k.
>
> When I put some timing code in there, I found that it could take from
> ~124 seconds to ~1290 seconds for the same 12 calls to complete (they
> returned the same data every time in my tests). The server hosting the
> web services did not ever appear to be under heavy load (I did a remote
> desktop to it and put up task manager to watch).
>
> I have tried running them asynchronously, and the total response time
> for all of the calls to return -- I need all the data returned before I
> can proceed, so I have to wait for all End calls to finish anyway --
> still varies greatly. The one thing I learned from the asynchronous
> calls is that certain calls among the 12 are far more likely to take
> much longer than others. In fact, they take much longer than they
> normally would if I just called each of them separately rather than all
> 12 in sequence. I even wrote a test application with buttons to do
> just that, and the total time it takes for me to click all 12 buttons
> and get a response is always less than 2 minutes.
>
> Why is there such a variation in response time? What can I do to get
> these web service calls to run faster?
>