如何使用 TcpChannel 配置对远程服务器的并发请求限制
我有一个带有底层 TcpChannel 的标准远程处理服务器:
IDictionary props = new Hashtable();
props["port"] = portnumber;
TcpChannel channel = new TcpChannel(props, null, provider);
ChannelServices.RegisterChannel(channel, false);
string url = string.Format("AgentHost", portnumber);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemotingAgentHostEndPoint),
url,
WellKnownObjectMode.SingleCall);
它工作正常,但是当并行调用达到 200 个时,客户端会收到 “无法建立连接,因为目标机器主动拒绝 127.0.0.1:33333”异常。
我找不到任何地方可以超越这个限制 - 你们有人知道吗?
亲切的问候 卡斯滕·赫斯
I have a standard Remoting server with an underlying TcpChannel:
IDictionary props = new Hashtable();
props["port"] = portnumber;
TcpChannel channel = new TcpChannel(props, null, provider);
ChannelServices.RegisterChannel(channel, false);
string url = string.Format("AgentHost", portnumber);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemotingAgentHostEndPoint),
url,
WellKnownObjectMode.SingleCall);
It works fine but when at 200 parallel calls the clients receive a
"No connection could be made because the target machine actively refused it 127.0.0.1:33333" exception.
I cannot find anywhere to override this limit - do any of you have a clue ?
Kind regards
Carsten Hess
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Windows 对并发半开 TCP 连接的最大数量有限制。 这个限制在不同的版本和配置中有所不同,但都在这里。 例如,Google 查找 tcpip.sys 问题 - 您会发现各种配置选项来覆盖此问题。
Windows has a limit for maximum number of concurrent half-opened tcp connections. This limit vary in different versions and configurations, but it is here. Google for tcpip.sys troubles for example - you will find various configuration options to override this.