簡體   English   中英

如何增加asp.net中web服務的超時時間?

[英]How to increase the timeout period of web service in asp.net?

我創建了一個 asmx 類型的 Web 服務。 我在 .net windows 應用程序中使用我的 web 服務。

來自 Web 服務的 Web 方法接收具有不同屬性的類的對象和對象的字節數組轉換,其中我以字符串的形式添加一個 xml 文件。 當我的包含 xml 數據的字符串增加時,它會在向 Web 服務發送數據時出現“超時”錯誤。

如何增加web服務的超時時間?

1 - 您可以在應用程序中設置超時:

var client = new YourServiceReference.YourServiceClass();
client.Timeout = 60; // or -1 for infinite

它以毫秒為單位

2 - 您也可以在 web/app.config 中的 httpruntime 標記中增加超時值:

<configuration>
     <system.web>
          <httpRuntime executionTimeout="<<**seconds**>>" />
          ...
     </system.web>
</configuration>

對於 ASP.NET 應用程序, Timeout屬性值應始終小於 Machine.config 中httpRuntime元素的executionTimeout屬性。 executionTimeout的默認值為 90 秒。 此屬性確定 ASP.NET 在返回超時錯誤之前繼續處理請求的時間。 executionTimeout的值應該是代理超時,加上頁面的處理時間,加上隊列的緩沖時間。 -- 來源

你可以用不同的方式做到這一點:

  1. 通過代碼在 Web 服務調用者中設置超時(不是 100% 確定,但我想我已經看到了);
  2. 在 web 引用中的 web 服務代理的構造函數中設置超時;
  3. 在服務器端設置超時,web 服務應用程序的 web.config。

有關第二種情況的更多詳細信息,請參見此處:

http://msdn.microsoft.com/en-us/library/ff647786.aspx#scalenetchapt10_topic14

在這里了解最后一個案例的詳細信息:

如何增加 Web 服務請求的超時時間?

在 app.config 文件(或 .exe.config)中,您可以在綁定中添加或更改“receiveTimeout”屬性。 像這樣

<binding name="WebServiceName" receiveTimeout="00:00:59" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM