问题描述
我根本不是WCF专家,请保持温柔。
我们有一个WCF应用程序,大约有10万个客户端命中服务器,也许每分钟100个。协议是通过wsHttpBinding的https。
间歇性地,我们会遇到一些错误:
- 通讯对象不能用于通讯,因为它处于故障状态(相信我们正在使用来自客户端的正确“关闭/中止”来处理该对象,而不是当前使用,但更新客户端会花费时间)
- 服务器发回一个错误,指示它太忙以致无法处理请求
- 客户端无法在配置的超时时间内完成安全协商
我们(我)的假设是,后两个错误(部分是从第一个错误中产生的)是MaxPendingSessions
使我们受挫。问题是我找到了描述将其添加到BindingElementCollection
的代码示例,但实际上它的读法仅对客户端有用,而对服务器没有帮助。我还看过“只是创建一个自定义绑定来设置它”,但是即使服务启动没有错误,我尝试过的所有内容仍然处于无法正常通信的位置。
很抱歉不能直接交出代码,我的雇主不允许这种事情;我尽我所能解释。
我尝试过
<customBinding>
<binding name = "MyCustomBinding">
<security>
<localServiceSettings maxPendingSessions="1024"/>
</security>
<httpsTransport/>
</binding>
</customBinding>
<readerQuotas maxBytesPerRead="2147483647"/>
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Windows"/>
</security>
所以真的有两个问题:
- 我要走正确的故障排除路径吗?昨天我们上线了,但是在较小的用户数量下进行测试就没有看到这些问题,因此现在我们有点不耐烦了,可能并没有直截了当。
- 如果是,如何将
maxPendingSessions
添加到wsHttpBinding
?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)