为什么某些 WCF 命名管道客户端会收到 TimeoutException

问题描述

我有一个 WCF 名称管道服务,用于在 Windows 上与 2 个进程通信。

我已经在我的机器上对其进行了测试并且可以正常工作,我已经为它开发了一个安装程序,并且它适用于大多数用户,但有些用户收到了带有此消息的 TimeoutException:

"发送到 net.pipe://localhost/myService 的请求操作在配置的超时 (00:00:10) 内未收到回复。分配给此操作的时间可能是较长超时的一部分。这可能是因为服务仍在处理操作或因为服务无法发送回复消息。请考虑增加操作超时(通过将通道/代理强制转换为 IContextChannel 并设置 OperationTimeout 属性)并确保服务是能够连接到客户端。”

错误的原因是什么?这是一个安全问题吗?在哪里可以设置命名管道的安全设置?

谢谢

解决方法

部分用户可能因为网络问题没有及时收到回复,可能导致超时。

您可以通过在绑定元素上设置发送和接收超时来配置配置文件中的超时设置。

在服务端和客户端应用绑定配置:

  <netNamedPipeBinding>
    <binding sendTimeout="00:20:00" receiveTimeout="00:20:00">
     <reliableSession inactivityTimeout="00:20:00"/>
    </binding>
   </netNamedPipeBinding>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...