如题,因为接触WCF 不久,对其内部机制了解未深入……下面描述一下问题:(注——限速为P2P限速)
网络不限速:一切正常
网络限速,局域网内无人下载东西时:一切正常
网络限速,局域网内无人下载东西时,少量客户端连接时(例如三五十个客户端):正常
网络限速,局域网内无人下载东西时,客户端连接到一定量时,已经连接的客户端会服务失效,新连接的客户端前几次请求数据(同步或异步)都正常:但后续的请求操作将抛出异常:通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为其处于“出错”状态。挂了……
补充:服务端和客户端配置maxBufferSize="2147483647"等等都已经放到最大化!!!
请高手分析是啥原因,并方便的话提出可行的解决方案,若成功解决,高分酬谢。100分暂时的,解决问题后至少300分,或者更多。。。。
------解决方案--------------------
你用的什么 Binding
------解决方案--------------------
带宽被限制了,那你可以采用消息压缩 减少传输数据的大小
http://jinnan.blog.51cto.com/1789230/340937
里面有参数介绍,你也可以修改参数值
------解决方案--------------------
看样子是连接数达到限制了。
不知道你的 Service 是哪种模型? Single ? PreSession ? PreCall ?
连接实例的默认值是 16,可以通过配置修改一下:
http://msdn.microsoft.com/zh-cn/library/ms731379.aspx
------解决方案--------------------
我指的是并发实例数
------解决方案--------------------
@__@ 限速了啊。
把 Receieve 的一些 Timeout 时间改大一些呢?
------解决方案--------------------
InactivityTimeout
MaxTransferWindowSize
都应该设置一下 具体看#4连接
------解决方案--------------------
这是个有趣的场景,可以模拟一下。
我想问问你现在 ServiceInstance 是哪一种?