【问题标题】:Getting timeout error - increase the send timeout value on binding出现超时错误 - 增加绑定时的发送超时值
【发布时间】:2019-03-06 23:13:13
【问题描述】:

WCF 服务返回超时错误如下。

在 XX:XX:XX 增加绑定时的发送超时值后,请求通道在等待回复时超时。分配给此操作的时间可能是较长超时的一部分

但我在浏览我的网站时会在 1 分钟内收到此错误。我已经提到在绑定配置(web.config)中将超时值设置为 00:10:00(10 分钟)。

相同的服务在我的本地系统中运行,但是当我托管在服务器中时,我遇到了这个问题。 正如我所观察到的,SQL 查询大约需要 1 分钟:20 秒的时间在服务器中执行。

我需要更新那些发送超时值的地方吗?

你能建议我吗?
谢谢。

【问题讨论】:

  • 那是在客户端(不是服务端)。这是与您的客户端端点关联的绑定的<binding/> 元素上的发送超时。整个往返需要在发送超时时间内完成。
  • @Flydog57 是对的,Flydog 继续写评论作为答案!
  • 你问的很巧。我花了一天时间试图追踪 WCF 超时问题(我很确定我的问题出在代理中)。但是,在此过程中,我已经阅读并测试了各种超时。当我靠近电脑时我会写下来
  • 我检查了客户端绑定定时属性。所有人都有10分钟。 closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"

标签: c# sql-server wcf iis-7 connection-timeout


【解决方案1】:

发生该错误是因为客户端(而不是服务端)的发送超时超时。发送超时在与您的客户端端点关联的绑定的<binding/> 元素上配置。

必须在发送超时到期之前完成整个往返(从客户端到服务器、服务端处理和返回客户端)。

【讨论】:

  • 客户端我有 10 分钟的发送超时。其他时候我也提到过 -> closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
  • @Jagadeesh:您可能会考虑的另一件事是配置文件中<system.web> 下<httpRuntime> 上的“executionTimeout”属性,但这个blogs.msdn.microsoft.com/wenlong/2008/03/10/… 表示它不再相关。如果我是你,我会在每个服务实现的开头和结尾以及客户端的每个调用站点上写一个日志条目。您收到的消息正是您在 10 分钟发送超时到期时收到的消息。
【解决方案2】:

这通常不是由 WCF 连接超时引起的,而是由其他问题引起的响应缓慢,例如服务器端和客户端的 Binding 配置问题,数据库连接失败。尝试检查数据库连接字符串以及WCF运行账号是否有权限连接数据库。
考虑以下配置。

<binding name="http" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" sendTimeout="00:10:00" receiveTimeout="00:10:00">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" />
    </binding>
  </webHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
      <serviceMetadata httpsGetEnabled="true" httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>          
    </behavior>
  </serviceBehaviors>
</behaviors>

如果问题仍然存在,请随时告诉我。

【讨论】:

  • 我在 Root 文件夹中有 Web 配置文件,我们在所有区域都使用相同的 Web 配置。我能够启动应用程序并从数据库中获取数据。如果服务返回较少的记录(如 1,2 条记录),则它工作正常。但是如果我有 100 条记录然后执行操作,那么 SQL 执行时间需要 1min.20 秒。然后我收到此错误。
  • 我在 IIS 连接超时中也进行了交叉验证。它的默认值为 120 秒。我已经更新到 300 秒。现在我也遇到了同样的问题。
  • 请尝试以上配置。
  • 我有相同的配置设置。实际上,最近我们转移到了 AWS-EC2 实例。 EC2 有 IIS 10,但我的本地/旧服务器有 IIS 8。那么,我们是否需要更改 IIS 级别的任何设置?因为相同的源代码+配置绑定设置在我的本地和旧服务器上工作。
  • 查看相关讨论,希望对你有用。stackoverflow.com/questions/11215513/…
猜你喜欢
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 2019-11-03
相关资源
最近更新 更多