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!
No comments:
Post a Comment
Send us your comment related to the topic mentioned on the blog