I have an application that calls a service to check the status on a series of items. There could be one or two, there could be one or two dozen, or there could be a few hundred. In all cases, there is a call and it gets a good result or a bad result. I barely care which (though I have realized that there is a case where I SHOULD care) and just go on to the next one whatever the response is.

I recently heard from the service that they were getting SPAMMED by one of the computers running this application. They were getting several hundred calls for each of these items. They were getting so many that they turned off the service, so all the call gets back is a 404.

The user of the program said that the program ran for hours, which makes sense since it was making somewhere in the vicinity of 360000 calls to a web service.

What I'm trying to figure out is why it did that. I have confirmed that the program, with the data in question, should have resulted in just over 900 calls. I have also confirmed that it is doing just that number on my computer (where I can watch it more closely). And yet, on the one computer in question, the service wasn't called once per item, but over 400 times per item.

I've run out of things to look at regarding this. The code does what I expect it to do: One call per item. The method that does that one call per item is in a button click, so it's not likely that somebody would be clicking the button 400 times.

I've also confirmed that there are about 900 items, and on my test machine, there are about 900 calls being made.

Does anybody have any suggestion as to how that call could have ended up being replicated 400 times? For example, is there any scenario where a 404 return would cause an HTTPWebRequest to automatically repeat the call....a few hundred times?