【问题标题】:WCF-The request channel timed out after 1 min, while sendTimeout="00:25:00" on both sidesWCF-请求通道1分钟后超时,而双方sendTimeout="00:25:00"
【发布时间】:2013-10-30 20:49:36
【问题描述】:

我在双方都收到“请求通道在 1 分钟后超时”的错误,甚至 sendTimeout="00:25:00"。 如果请求的时间小于 1 分钟,则没有问题,但请求处理时间大于 1 分钟时会出现问题。在 WCF 服务上。

在 WCF 服务端,我的 web.config 文件中有以下绑定

<bindings>
  <basicHttpBinding>
    <binding maxReceivedMessageSize="67108864" transferMode="Streamed" closeTimeout="00:25:00" openTimeout="00:25:00" sendTimeout="00:25:00" receiveTimeout="00:25:00" >
      <security mode="None" ></security>
    </binding>
  </basicHttpBinding>  
</bindings>

在客户端,我的 app.config 文件中有以下绑定

<bindings>
  <basicHttpBinding>
    <binding name="streambinding" maxReceivedMessageSize="67108864" closeTimeout="00:25:00" openTimeout="00:25:00" sendTimeout="00:25:00" receiveTimeout="00:25:00" transferMode="Streamed">
      <security mode="None"></security>
    </binding>
  </basicHttpBinding>
</bindings>

【问题讨论】:

    标签: c# wcf visual-studio-2012


    【解决方案1】:

    您可以添加跟踪和消息日志(在客户端和服务中)并分享结果吗?请将此article 用于客户,this 用于服务

    【讨论】:

    • 服务器端没有日志错误,而客户端有超时问题。跟踪是在服务器端创建的,而不是在客户端创建的。
    • 服务端出现问题,导致服务超时。您是否在服务中添加了配置?如果是,它是否生成日志?
    • 通过设置 sendTimeout="00:25:00" receiveTimeout="00:10:00" 而不是 sendTimeout="00:10:00" receiveTimeout="00:25:00" 解决了问题.
    • 我还在服务类中添加了[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]。
    【解决方案2】:

    从您的服务和客户端配置文件中我可以看出,您的服务绑定配置是默认的,我的意思是它没有给出任何名称,但客户端绑定配置有一个绑定名称。尝试在服务和客户端上保持相同,或者在服务中具有绑定配置的名称,或者从客户端中删除该名称。由于您使用不同的 bindingName 访问,WCF 无法识别确切的配置,它可能会超时。

    【讨论】:

    • 是的,我也这样做了.. 但主要是我没有在我的服务类中添加 [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)] 标记。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2014-09-02
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    相关资源
    最近更新 更多