2012-12-27 43 views
3

在我的asp.net/c#網站上,我提出了一個需要一分鐘的請求,有時會出現錯誤,表示請求超時,我無法捕捉到它。但我想到了一個解決方法。如何獲得最大的http請求長度時間?

我可以將最大時間作爲一個值,然後在做循環時,我可以計時,如果超過最大時間減去4秒,則停止循環。

但我怎樣才能獲得最大時間(從web.config文件)?有沒有我可以使用的變量?

感謝

+0

解釋你的問題,而不是你的解決方案。爲什麼在超時前四秒停止?如果請求在超時前三秒成功,該怎麼辦?你爲什麼不能趕上暫停?誰在拋出超時錯誤?你想在哪裏抓到它?你不能開始在後臺運行的長時間運行的請求,所以請求會立即返回嗎? – CodeCaster

回答

1

我認爲你可以檢查HttpServerUtility.ScriptTimeout屬性 - 它反映httpRuntime eleme上的executionTimeout屬性的web.config值NT。在這個

MSDN項:

http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.scripttimeout.aspx

希望它能幫助!

+0

標記爲',但使用這個我得到110 ...? – omega

+1

maxRequestLength是以字節爲單位的大小,而不是以毫秒爲單位的超時。這將是executionTimeout元素。 – OnoSendai

+0

但在webconfig文件中,任何executionTimeout屬性的唯一值是3600,這是針對特定頁面的。那麼如果這個屬性沒有定義,那麼有一些默認值? – omega

0

也許這可以幫助你得到你所尋找的價值:

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.timeout%28v=vs.100%29.aspx

另外,更簡單的方法是直接讀取配置:

HttpRuntimeSection section = ConfigurationManager.GetSection("system.web/httpRuntime") as HttpRuntimeSection; 

lblDebug.Text = section.MaxRequestLength.ToString(); 
+0

如何獲取當前的HttpWebRequest?它需要一個對象引用。 – omega

+0

您可以創建一個新的,如MSDN頁面上的示例 – Tys

+0

我已經在web.config文件中添加了另一個更簡單的方法來獲取正確的值 – Tys