@jesuson -
You are probably experiencing port exhaustion - your simply using more ephemeral ports than your OS is configured to support. You can try changing the following registry settings:
- Increasing the MaxUserPort setting from 5k to 65k
- Decreasing the TcpTimeWaitDelay setting from 240 to something lower than the default
The first one increases the number of temporary (ephemeral) ports that outgoing connections can use; the second decreases the amount of the time the socket is in TIME_WAIT when it is closed. You can read more about this here (ignore the bizspark bit): http://msdn.microsoft.com/en-us/library/aa560610(v=bts.20).aspx
Also, whenever I see this, I wonder about how many client instances are opening and if you are caching them appropriately. In general, you should create a single client instance per bucket when the application starts (Application_Start) and close that connection via Dispose when the application shuts down (Application_End). You might want to check to make sure your not creating and destroying lots of client objects.
-Jeff