2011-09-02 43 views
14

我創建了一個asmx類型的Web服務。我在.net窗口應用程序中使用我的Web服務。如何增加asp.net中web服務的超時時間?

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

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

謝謝。

回答

8

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

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

在這裏看到更多的細節在第二種情況:

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

和這裏對後一種情況的詳細信息:

How to increase the timeout to a web service request?

+0

我用第二個選項和設置Web服務代理類屬性的超時屬性,但它拋出一個異常爲'基礎連接已經關閉:連接被關閉unexpectedly.' – Priyanka

15

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

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

它在

2 - 你也可以在網頁/ app.config中增加的httpRuntime標記超時值:

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

。注意的httpRuntime元件放在這裏: <結構> <的httpRuntime executionTimeout = 「600000」/> ... –

+2

根據https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100 ).aspx屬性用秒錶示,而不是毫秒。 –

+0

@SueMaurizio感謝您的修正。 – MOH3N

1

在app.config文件(或.exe.config) 您可以添加或更改「receiveTimeout 「綁定中的財產。 這樣

<binding name="WebServiceName" receiveTimeout="24:00:00" /> 
+0

它是正確的嗎?請解釋一下。 –

相關問題