对*.svc的HTTP请求已超出分配的超时.分配给此操作的时间可能是较长超时的一部分.

sub*_*ash 16 silverlight wcf timeout

我一直在使用WCF开发Silverlight应用程序.

问题是有时会引发异常,说明:

"对'http:// localhost:1276/Foo.svc'的HTTP请求已超过分配的超时.分配给此操作的时间可能是较长超时的一部分."

那么我该如何增加时间跨度?有些人建议在web配置和service.client配置文件中使用接收时间,如下所示

 <bindings>
      <customBinding >
        <binding  name="customBinding0" receiveTimeout="02:00:00" >
          <binaryMessageEncoding maxReadPoolSize="2147483647" maxWritePoolSize="2147483647" maxSessionSize="2147483647" />


          <httpTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" transferMode="Buffered"/>

        </binding>
      </customBinding>      
    </bindings>
Run Code Online (Sandbox Code Playgroud)

receiveTimeout属性的最大值是多少?

Yea*_*Stu 22

我想问题不在于您的ReceiveTimeout超出了该设置的最大值,因为TimeSpan的MaxValue超过1000万天.相反,我认为设置没有生效.

您应该尝试根据此博客文章增加服务器和客户端上的超时值:

在服务器上(在web.config中)

<binding name="customBinding0" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00">
Run Code Online (Sandbox Code Playgroud)

在客户端上(在ServiceReferences.ClientConfig中)

<binding name="CustomBinding_DesignOnDemandService" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00">
Run Code Online (Sandbox Code Playgroud)


小智 5

HTTP 请求已超过分配的超时时间。分配给此操作的时间可能是较长超时的一部分。

设置时间值以解决此问题的三个位置...

  1. 网页配置

    <httpRuntime executionTimeout="600" />
    
    Run Code Online (Sandbox Code Playgroud)

    (这是秒,所以这里是 10 分钟)。有关 httpRuntime 的更多信息,请点击此处。

  2. 在您的 Web.Config 绑定元素上

    <binding name="customBinding123"     receiveTimeout="00:10:00"     sendTimeout="00:10:00"     openTimeout="00:10:00"     closeTimeout="00:10:00" />
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在 system.serviceModel 中的 ServerReferences.ClientConfig 绑定元素上

    <binding name="CustomBinding"     receiveTimeout="00:10:00"     sendTimeout="00:10:00"     openTimeout="00:10:00"     closeTimeout="00:10:00" />
    
    Run Code Online (Sandbox Code Playgroud)