客户端断开连接后,WCF操作未运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客户端断开连接后,WCF操作未运行相关的知识,希望对你有一定的参考价值。

据我所知,BasicHttpBinding不支持ReliableSession功能。因此,这意味着当服务器(wcf主机)收到请求时,它将在客户端之后断开连接时执行。我希望我对此好吗?

问题是:我有一个带BasicHttpBinding的WCF服务。我们通过在客户端使用不同线程调用10次来测试此服务。这些请求都是在同一时间(差不多)完成的。在线程调用之后,我们通过终止进程来终止程序。结果,执行了10个请求中的6个,但是没有执行4个请求。我们使用wireshark检查了网络流量,并看到wcf服务主机收到了10个请求。但是,我们知道其中4个没有执行。

(在绑定时未配置超时值:这意味着它们都被设置为默认值。此外,wcf服务托管在iis上)。

这有什么问题?我在哪里可以查看?即使客户端断开连接,我们还能做些什么来实现10次执行?

答案

即使客户端断开连接,我们还能做些什么来实现10次执行?

您可以将其设为默认行为。使用[OperationContract(IsOneWay=true)]创建单向合约,客户端不等待回复,但只是在发送消息后断开连接。

另一答案

由于即使客户端断开连接,您确实需要完成服务,我认为您需要完成数据库事务。

如果WCF连接到数据库,这将是正常的,特别是如果您使用相同的数据库用户和密码,如果是这种情况尝试连接一次所有WCF实例。

无论哪种方式,您必须确保您的WCF提供并发访问。单击here以获取有关并发WCF访问的更多信息。

以上是关于客户端断开连接后,WCF操作未运行的主要内容,如果未能解决你的问题,请参考以下文章

xshell避免长时间未操作断开连接

由于远程服务未运行,如何中断在连接状态下被阻止的 WCF 代理

WCF测试客户端断开字符串值,然后再将这两个部分连接在一起

如果服务器断开我的连接,如何检测客户端?

unity客户端自动断开连接

Xcode显示断开连接消息后应用程序图标未显示