C# WCF请求通道在1分钟后超时,而sendTimeout=";00:25:00“;两边

C# WCF请求通道在1分钟后超时,而sendTimeout=";00:25:00“;两边,c#,wcf,visual-studio-2012,C#,Wcf,Visual Studio 2012,我得到的错误是“请求通道在1分钟后超时”,甚至双方都是sendTimeout=“00:25:00”。 如果请求时间小于1分钟,则没有问题,但在WCF服务上处理请求时间大于1分钟时会出现问题 在WCF服务端,我的web.config文件中有以下绑定 <bindings> <basicHttpBinding> <binding maxReceivedMessageSize="67108864" transferMode="Streamed" closeTim

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

在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>
<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>

在客户端,我的app.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>
<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>


您可以添加跟踪和消息日志(在客户端和服务中)并共享结果吗?从服务和客户机的配置文件中,为客户机和服务引用此项,我可以看出,您的服务绑定配置是默认的,我的意思是它没有给定任何名称,但客户端绑定配置有一个绑定名称。尝试在服务和客户端保持相同,或者在服务中为绑定配置指定一个名称,或者从客户端删除该名称。由于您使用不同的bindingName进行访问,WCF无法识别确切的配置,并且可能正在超时。

在服务器端,当客户端出现超时问题时,日志中没有错误。跟踪是在服务器端创建的,但不是在客户端。由于哪个服务超时,服务端出现了一些问题。您是否在服务中添加了配置?如果是,它是否生成日志?通过设置sendTimeout=“00:25:00”receiveTimeout=“00:10:00”而不是sendTimeout=“00:10:00”receiveTimeout=“00:25:00”来解决问题。我还在服务类中添加了[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]。是的,我也这样做了。。但最主要的是我没有在我的服务类中添加[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]标记。