繁体   English   中英

使用WCF PollingDuplex和Silverlight客户端时出现MaxSessionsPerAddress问题

[英]MaxSessionsPerAddress issue when using WCF PollingDuplex and Silverlight client

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个会话,所以所有后续重试均被拒绝?

一般信息:

  • 轮询双工连接
  • 无法重现此问题,因为在实时环境中曾观察到此问题,然后将其关闭以不影响用户
  • IIS HTTPERR日志中有多个Connection_Abandoned,Connection_Dropped条目用于失败的服务

WCF客户端:

  • 银光4
  • ClientPollTimeout = 5min
  • InactivityTimeout = 24h,SendTimeout = 30min,CloseTimeout = 3min
  • ReceiveTimeout = 24h,OpenTimeout = 3min

WCF服务器:

  • IIS托管
  • InstanceContextMode = PerSession
  • ConcurrencyMode =多个
  • 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”

任何帮助,不胜感激!

主要原因是客户端最终失败,这迫使客户端重新连接的频率太高(每5秒),在重新连接服务器/服务后收到客户端的请求,但客户端又出现问题,每次重新连接都会创建一个新的WCF服务会话,仅在缺少客户端轮询2分钟后终止,因此一个客户端在2分钟内在服务端创建了太多会话。

为什么Silverlight客户端最终出现故障并断开连接? 请参阅以下描述了实际问题和解决方案的帖子: WCF Silverlight客户端获取404找不到轮询消息的响应

应用了其他问题和解决方案,也许有人发现有帮助:

客户:

问题:由于不同的原因,通道关闭操作可能在CloseTimeout="00:03:00"分钟内停留太长时间

解:

  • closeTimeout设置为10秒,以便在出现任何问题的情况下在10秒内强制执行关闭操作,以便客户端快速进行清理
  • 将重新连接超时从5秒增加到30秒,以便释放/清除与旧频道连接相关的所有内容

服务:

问题:有时我看到在sendTimeout=30minutes的客户端回调调用( CallbackContract )时服务被卡住,因为客户端断开/故障导致无法完成操作,因此服务清理延迟了30分钟,但应尽快释放/清理,在客户端发生故障/断开连接时处理

解:

  • 将sendTimeout设置为30秒,这足以通过网络发送几千字节的消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM