2011-09-21 258 views
3

在我的.NET應用程序調用Web服務的時候,我得到以下異常:.NET WebService的超時異常

System.Net.WebException:操作已在 System.Web.Services超時.Protocols.WebClientProtocol.GetWebResponse(的WebRequest 請求)在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(的WebRequest 請求)在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串 方法名,對象[]參數)在 org.wvi.hrmgmt.HRManagementServiceserviceage nt.LoadReducedTemplate(LoadReducedTemplateRequest LoadReducedTemplateRequest)在 org.wvi.mgmt.hr._ServiceClient.UploadReducedTemplate()

基本上,用戶上傳文件到web服務器和被傳遞該文件的二進制內容作爲調用Web服務操作時的輸入參數之一。該文件的大小是1397 KB,如果我選擇處理這個文件,我得到了異常。然而,處理一個相對較小的文件,假設爲127 KB,可以成功迴應。

我已經做了,爲了解決面臨的困境下面的步驟:

  1. 設置Web服務超時爲無限。 - >沒有得到一個異常和任何響應

  2. 添加Response.Close() - >沒有得到任何響應

  3. 編輯在IIS服務器在web.config並添加下列行: - >仍然得到異常

    <system.web> 
        <customErrors mode="Off"/> 
    <httpRuntime executionTimeout="600" maxRequestLength="16384"/> 
    <sessionState timeout="540"/> 
    </system.web> 
    

但無濟於事,我仍然得到上面的異常。我正在使用一個名爲來自GitHub的AjaxUpload的Javascript插件,我無法確定它們是否具有文件上傳大小限制。此外,我檢查了文件是否上傳到服務器上,因此,問題可能不在於該插件。

另一個問題是我在打開網頁一段時間後上傳文件時遇到了同樣的異常。我推測這與會話超時有關,所以我在web.config文件中添加了一行指定最大超時時間。請告訴我,如果我在正確的軌道上。

是否需要在我的IIS服務器中應用其他設置才能使操作成功?否則,有什麼我失蹤?如果您以前遇到過這種情況,請通知我該怎麼做。

太感謝你了, 拉爾夫

回答

0

這可能是由於很多代理之前打開。因此,我建議您刪除Service.Reference.Config以及Web服務引用,並再次添加服務引用並查看它是否解決了您的問題。

0

添加到前面的回答,您可以嘗試在代理類設置執行超時,請參閱本discussion

你服務調用執行長時間運行的任務,你可能希望有一個漫長的時間如前所述,通過設置代理類中的超時,可以進行任何web服務調用。