Monday, December 3, 2012

MaxSessionsPerAddress issue when using WCF PollingDuplex and Silverlight client

MaxSessionsPerAddress issue when using WCF PollingDuplex and Silverlight client

WCF Trace logs shows many "The server has hit a PollingDuplex throttle, MaxSessionsPerAddress, and cannot accept another session from this client. An http error was returned" errors.

Can't find enough details about MaxSessionsPerAddress settings, just found this post which saying that MaxSessionsPerAddress always is 10 and cannot be changed.

Just thinking may be this issue related to a fault tolerance logic I've implemented for client proxy which together with some timeout results in such issue: In case of a channel failure WCF client proxy closes a channel (Close() then Aboort() in try/catch) and then tries to reconnect each 5 seconds, N retries. Perhaps a client was not able connect even after 10 retries what created 10 sessions on a service so all next retries were refused?

General information:

  • PollingDuplex connection
  • Cannot reproduce this issue since it was observed once in a live environment and then switched off to do not impact users
  • IIS HTTPERR log has multiple Connection_Abandoned, Connection_Dropped entries for a failed service

WCF Client:

  • Silverlight4
  • ClientPollTimeout=5min
  • InactivityTimeout=24h, SendTimeout=30min, CloseTimeout=3min
  • ReceiveTimeout=24h, OpenTimeout=3min

WCF Server:

  • IIS Hosted
  • InstanceContextMode = PerSession
  • ConcurrencyMode = Multiple
  • maxConcurrentCalls, maxConcurrentSessions, maxConcurrentInstances are set to 500
  • HttpBinding, httpTransport, PollingDuplexBindingElement, DuplexChannelFactory
  • sendTimeout="00:30:00", receiveTimeout="24:00:00", openTimeout="00:10:00", closeTimeout="00:10:00"
  • maxOutputDelay="00:00:01", inactivityTimeout="24:00:00", serverPollTimeout="00:02:00"
  • maxReceivedMessageSize="1073741824", maxBufferSize="1073741824", MaxBufferPoolSize="2147483647"

Any help greatly appreciated!

Answers & Comments...




No comments:

Post a Comment

Send us your comment related to the topic mentioned on the blog