gpt4 book ai didi

WCF 服务 - 处理行为不端的客户?

转载 作者:可可西里 更新时间:2023-11-01 02:43:04 25 4
gpt4 key购买 nike

我们的 WCF 解决方案有一个自定义监听器,它继承自 ChannelListenerBase<IDuplexSessionChannel> .

我们有一个行为不端的客户端(超出我们的控制),它按照以下几行与我们进行 TCP 对话:

SYN  
SYN,ACK
RST

基本上,他们试图在套接字建立、失败和关闭套接字之前对其执行操作。

在我们的 OnEndAcceptChannel代码,我们最终无法创建 channel ,因为当我们到达那里时底层 Socket 已经关闭,我们得到一个 SocketException。这似乎杀死了听众,阻止它接受进一步的连接。

来自 OnEndAcceptChannel ,我们已经尝试返回 null,抛出异常,并对监听器进行故障处理,以便它可以在调用堆栈的更高层重新启动。后者是我们发现的唯一可以让 channel 有效地继续监听的解决方案,但这会产生令人不快(并且 Not Acceptable )的副作用,即终止所有已建立的服务连接。

有人对如何处理这种情况、继续倾听并且不失去已建立的联系有任何建议吗...?

最佳答案

我们最终设法修复了它。我们没有返回 null,而是返回了一个实现 IDuplexSessionChannel 的虚拟类的实例,它本质上是一个愚蠢的状态机,仅此而已 - 愚弄 WCF 使其继续执行。

关于WCF 服务 - 处理行为不端的客户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com