WCF Windows服务超时怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我有一个用.net开发的客户端应用程序,它向wcf服务发送一个请求,并且应该在1分钟内发送响应.if执行时​​间,如果超过1分钟,则没有错误,错误是

Inner exception: This request operation sent to net.tcp://localhost:18001/PitToPort/2008/01/30/StockpileService/tcp did not receive a reply within the configured timeout (00:01:00).

The time allotted to this operation may have been a portion of a longer timeout. This may be because the service is still processing the operation or because the service was unable to send a reply message. Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client

如何增加超时以及如何?什么是最好的解决方案?

提问于
用户回答回答于

超时时间称为“sendTimeout”,可以在配置文件的绑定部分或代码中配置它。

配置:

  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding sendTimeout="00:03:00" />
      </netTcpBinding>
    </bindings>

这会将超时设置为3分钟。

用户回答回答于

请注意,此错误消息是WCF发送的样板字符串,因为它不知道发生了什么。这实际上意味着“我的链条出了问题,但我不确定是什么,所以,这里有关于配置的一些琐事,做你想做的事情”。

当你收到这条消息时,大部分时间与实际的超时无关。它可以是配额(图中对象的数量,整体大小,数组长度)或服务器端发生错误的事情,在服务方法返回结果和实际字节通过线路发送之间。所以,你应该检查你的配置设置(而不是超时,除非你必须等待一分钟才能得到错误,如果你立刻发现错误,它与超时无关)。

这个无用的消息位于我的WCF烦恼列表之上。

扫码关注云+社区