I am currently developing a secure WCF service that will receive a large number of calls, e.g. More than 3000. My basic approach is to call webservice methods using 'async', but I quickly realized that I needed to use the work. Ensure that all calls were successfully performed before the execution ended.
However, using WaitAll, I am overloading the service with 70% calls now returning a combination of 'CommunicationException' and 'ServerTooBusyException' type messages. I have reviewed the WCF throttling options, but have still found that it has no direct effect, i.e. (note: the webservice on local IIS is being run locally at this location)
& lt; Service provider maximumconcollect = "4096" maximum resource session = "65536" maxcancerinstance = "2147483647" />
Run the webservice call syncing This works fine, but runs very slow and I do not care too much about waiting for any callback from webservice - I literally call these calls' Fire and Mistake Needed
var numberOfItations = 3000; Var All Calls = New List & amp ;; Tasks & gt; (); (Var service = New WebserviceServiceClient ()) {for (var n = 0; n & lt; numberOfItations; n ++) {var someObject = new SomeObject (DateTime.UtcNow); AllCalls.Add (service.WebserviceMethodAsynch (SomeObject)); }} Tasks. Waiting for all (All calls. Two arrays ());
Can a client be advised on a brilliant approach without failing to wrest the WCF's forgery?
Note: One approach will be to use the queue (in this case the ezoor cues), irony is that the service is doing some minor preprocessing before adding an object to a line that is raised by a separate, more intensive process. is.
In advance thank you
Your customer and your web service are not on the same machine, right? Anyway, I believe that you want to use a better load test to get the results you are looking for:
No comments:
Post a Comment