调用基于流的 Web 服务时出现重复超时

本文关键字:超时 服务 于流 Web 调用 | 更新日期: 2023-09-27 17:57:03

调用基于流的Web服务,但不断收到超时异常(System.Web.Net.Exception)。

在网上找到的所有建议都要求我设置超时。 这是我的配置:

    <binding name="BasicHttpBinding_IEntity"  maxBufferSize="65536"
             maxReceivedMessageSize="2147483647"
             transferMode="StreamedRequest" receiveTimeout="00:10:00" sendTimeout="00:10:00"  openTimeout="00:10:00" closeTimeout="00:10:00" >
      <readerQuotas  maxArrayLength="2147483647"  maxStringContentLength="2147483647" />
    </binding>

我仍然超时,这越来越令人沮丧。 同一服务器上具有类似 URL 的另一个 Web 服务(用于登录)工作正常。第二个 Web 服务不是基于流的。

我提交到 Web 服务的方式有问题吗?我已经验证了我提交的参数是否正确。

调用基于流的 Web 服务时出现重复超时

问题是BasicHttpBinding用于与 SOAP Web 服务(准确地说是 SOAP 1.1)进行通信。您链接到的客户端代码正在使用 Web 服务,就好像它是 RESTful 服务一样。

可以使用

WebClient 类来使用 WCF SOAP Web 服务,但我不建议这样做。如果此服务是 SOAP Web 服务,那么我建议通过 WSDL 生成一个代理,并使用它来与服务进行通信。如果该服务实际上是 WCF RESTful 服务,则必须WebHttpBinding并将WebHttpBehavior添加到服务终结点。