首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WCF Windows服务TimeOut

WCF Windows服务TimeOut
EN

Stack Overflow用户
提问于 2009-05-28 05:19:08
回答 9查看 73K关注 0票数 16

我有一个在.net中开发的客户端应用程序,需要在1分钟内发送响应.if执行时间,如果超过1分钟,错误是

net.tcp://localhost:18001/PitToPort/2008/01/30/StockpileService/tcp内部异常:发送到

的此请求操作在配置的超时(00:01:00)内未收到回复。

分配给此操作的时间可能是较长超时的一部分。这可能是因为服务仍在处理操作,或者因为服务无法发送回复消息。请考虑增加操作超时(通过将通道/代理转换为IContextChannel并设置OperationTimeout属性),并确保服务能够连接到客户端

如何增加超时时间?最佳解决方案是什么?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-06-02 23:57:39

我已经将以下代码添加到服务应用程序代码中

代码语言:javascript
复制
system.transactions  
    defaultSettings timeout="00:30:00" 

使用此代码,服务将等待30分钟以在数据库服务器中完成处理,并增加

代码语言:javascript
复制
maxBufferSize="2147483647"  
maxReceivedMessageSize="2147483647"  
maxBufferPoolSize="2147483647" 

在客户端绑定属性中,它工作得很好。

问题:服务正在发送响应,但客户端缓冲区大小之前较小,我增加到最大缓冲区大小。

票数 4
EN

Stack Overflow用户

发布于 2009-06-03 00:26:22

请注意,此错误消息是WCF在不知道发生了什么情况时发送的样板字符串。这实际上意味着“嗯,链中出了点问题,但我真的不确定是什么,所以,这里有一些关于配置的琐事,可以随心所欲地处理它”。

大多数情况下,当您收到此消息时,它与实际超时无关。它可以是配额(图中的对象数量、总大小、数组长度),也可以是在您的服务方法返回结果和通过网络发送实际字节之间的服务器端出了问题。因此,您应该检查您的配置设置(而不是超时,除非您必须真正等待一分钟才能得到错误。如果你马上就得到了错误,那么它与超时无关)。

这条无用的消息在我的WCF烦心事清单的首位。

票数 63
EN

Stack Overflow用户

发布于 2009-05-28 05:23:23

超时时间称为"sendTimeout“,您可以在配置文件的绑定节上配置它,也可以在代码中配置它。

配置:

代码语言:javascript
复制
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding sendTimeout="00:03:00" />
      </netTcpBinding>
    </bindings>

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

Marc

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/919287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档