2013-02-25 41 views
2

我們有一個調用存儲過程的網頁。存儲過程需要大約5分鐘才能運行。從ASP.NET調用時,它會在約2分40秒的時間內超時並出現HTTP執行超時錯誤。如何增加ASP.NET HTTP進程的超時?

我想在我的web.config文件中設置一個HTTP超時屬性:

<httpRuntime executionTimeout="600"> 

但它並沒有幫助。

任何想法讚賞。謝謝

+1

也許你已經這樣做了,但......你不能加速存儲的過程嗎?這感覺就像修復了沒有損壞的那一端...... – rene 2013-02-25 20:30:45

+0

請你能發佈完整的例外細節。我知道你說過這是一個HTTP執行超時,但據我所知,設置executionTimeout應該已經解決了這個問題。我想知道如果您的數據庫連接超時值是造成問題,而不是。 – 2013-02-25 21:02:12

+0

proc需要很長時間..它只是它在做什麼。這是錯誤: '/'應用程序中的服務器錯誤。 請求超時。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.Web.HttpException:請求超時。 – user1761600 2013-02-25 21:25:46

回答

2

您不應該創建一個Web應用程序,其頁面可能需要從服務器獲得如此長的響應時間。作爲一般規則,你知道的任何事情都需要超過10秒鐘左右的時間,這應該是一個異步過程。您可能已經看到網站顯示「請稍候」屏幕以顯示長時間運行的進程,大多數情況下這些頁面都是通過將長時間運行的作業委派給後臺進程或消息隊列進行工作的,然後進行輪詢,直到作業成功完成或出錯。

我知道這可能看起來像一個高難度的訂單,如果你以前沒有做過,但它確實是專業的方式來處理你面臨的情況。在某些情況下,您的客戶可能正在使用代理服務器的網絡進行工作,這些代理服務器設置爲中止HTTP請求,而不管您設置超時的時間。

這是一個過時的鏈接,我相信.NET框架已經引入了其他方法來做到這一點,但是我現在在某些情況下仍然使用以下方法。

http://www.devx.com/asp/Article/29617