2010-11-09 51 views
13

我一直在使用WCF開發Silverlight應用程序。對* .svc的HTTP請求已超出分配的超時。分配給此操作的時間可能是超時時間的一部分。

的問題是,有時它拋出異常,指出:

「的HTTP請求的‘http://本地主機:1276/Foo.svc’已經超過了分配超時分配給該操作的時間可能。已經是更長時間的一部分了。「

那麼如何增加時間跨度呢?有人建議在網絡配置和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> 

這將是對receiveTimeout屬性的最大值如下收到超時的使用情況如何?

回答

19

我想象的問題不是您的ReceiveTimeout超出了該設置的最大值,因爲TimeSpan的MaxValue超過了1000萬天。相反,我認爲這些設置不起作用。

你應該嘗試在服務器和每this blog post客戶端上都增加超時值:

在服務器上(在你的web.config)

<binding name="customBinding0" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00"> 

在客戶端(在你的ServiceReferences.ClientConfig)

<binding name="CustomBinding_DesignOnDemandService" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00"> 
3

HTTP請求已超出分配的超時。分配給此操作的時間可能是超時時間的一部分。

三地成立時間值來解決這個問題...

  1. 的Web.Config

    <httpRuntime executionTimeout="600" /> 
    

    (這是秒,所以這裏是10分鐘)。更多關於httpRuntime的信息。

  2. 在你的web.config中system.serviceModel內綁定元素

    <binding name="customBinding123"  receiveTimeout="00:10:00"  sendTimeout="00:10:00"  openTimeout="00:10:00"  closeTimeout="00:10:00" /> 
    
  3. 在您ServerReferences.ClientConfig綁定元素

    <binding name="CustomBinding"  receiveTimeout="00:10:00"  sendTimeout="00:10:00"  openTimeout="00:10:00"  closeTimeout="00:10:00" /> 
    
+1

Web配置,客戶端配置以及executionTimeout中的所有綁定都設置爲10分鐘,但我仍然在1分鐘時間內收到超時。 – maplemale 2014-06-04 19:17:18

1

幾天前我們得到了同樣的錯誤信息。我發現這個線程,但在我們開始增加不同的超時屬性之前,我們檢查了客戶端機器的防病毒軟件:它是NOD。較新的NOD(也可能是其他AV)具有端口過濾/塊可能性。我們關閉了80/443端口阻塞,並且客戶端連接時沒有任何超時錯誤消息。