WCFトレースログには多くの"The server has hit a PollingDuplex throttle, MaxSessionsPerAddress, and cannot accept another session from this client. An http error was returned"
エラーが表示されます。
MaxSessionsPerAddress
設定に関する十分な詳細が見つかりません。常に変更できないというこの投稿を見つけました。MaxSessionsPerAddress
10
クライアントプロキシ用に実装したフォールトトレランスロジックに関連するこの問題は、タイムアウトとともにこのような問題が発生する可能性があると考えています。チャネル障害が発生した場合、WCFクライアントプロキシはチャネルを閉じます(Close()、次にAboort() try / catch)その後、5秒ごとに再接続を試み、N回再試行します。おそらく、クライアントは10回の再試行後も接続できなかったため、サービスで10回のセッションが作成されたため、次の再試行はすべて拒否されましたか?
一般情報:
- PollingDuplex接続
- この問題は、ライブ環境で一度観察された後、ユーザーに影響を与えないようにオフにされたため、再現できません。
- IIS HTTPERRログには、失敗したサービスの複数のConnection_Abandoned、Connection_Droppedエントリがあります
WCFクライアント:
- Silverlight4
- ClientPollTimeout = 5min
- InactivityTimeout = 24h、SendTimeout = 30min、CloseTimeout = 3min
- ReceiveTimeout = 24h、OpenTimeout = 3min
WCFサーバー:
- IISホスト
- InstanceContextMode = PerSession
- ConcurrencyMode = Multiple
- maxConcurrentCalls、maxConcurrentSessions、maxConcurrentInstancesは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"
どんな助けでも大歓迎です!