ASP中有關(guān)timeout超時的體會
發(fā)表時間:2024-02-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]最近用ASP和MSSQL做了一個數(shù)據(jù)庫應(yīng)用, 開始一切順利,但隨著數(shù)據(jù)量的增加, 先后幾次查詢時出現(xiàn)timeout的問題. 參考Option Pack文檔及社區(qū)內(nèi)的文章, 現(xiàn)在問題都已解決(至少沒又發(fā)現(xiàn)新的). 現(xiàn)把解決方法總結(jié)一下: 影響服務(wù)器產(chǎn)生超時的設(shè)置大致有: 1. Server.Scri...
最近用ASP和MSSQL做了一個數(shù)據(jù)庫應(yīng)用,
開始一切順利,但隨著數(shù)據(jù)量的增加,
先后幾次查詢時出現(xiàn)timeout的問題.
參考Option Pack文檔及社區(qū)內(nèi)的文章,
現(xiàn)在問題都已解決(至少沒又發(fā)現(xiàn)新的).
現(xiàn)把解決方法總結(jié)一下:
影響服務(wù)器產(chǎn)生超時的設(shè)置大致有:
1. Server.ScriptTimeout,
2. Connection對象的CommandTimeOut屬性,
3. Command對象的CommandTimeOut屬性,
4. IE瀏覽器的設(shè)置.
Server.ScriptTimeout,默認(rèn)值是90秒.
要增大它,在你的asp文件中加一句,如下:
Server.ScriptTimeout=999,
將頁面超時設(shè)為999秒.
最初我只設(shè)置Server.ScriptTimeout,
但仍會出現(xiàn)timeout錯誤,無論它的值設(shè)成都多大.
后在社區(qū)里看到一帖子,提到commandTimeout屬性,
于是查看Option Pack文檔,果然還有其他的timeout.
Connection對象和Command對象都有個CommandTimeOut屬性,
默認(rèn)是30秒,如果你有一個耗時的查詢或數(shù)據(jù)處理,
很容易就超時了.要增大它,也很容易,創(chuàng)建對象后,
設(shè)置它的屬性,如下:
con.CommandTimeOut = 999,
設(shè)為999秒,其中con是一Connection對象.
如設(shè)為零,將無限等待,沒有這一timeout限制.
Command對象不會繼承Connection的這一屬性,
所以對可能超時的Command也要單獨設(shè)置CommandTimeout屬性.
最后IE也有個超時設(shè)置,5分鐘從服務(wù)器得不到數(shù)據(jù),也超時.
這種情況可能很少碰到,
但當(dāng)我把一10多萬查詢的結(jié)果保存為mdb文件時,
就遇到了.(至于保存的方法,請參看精華區(qū)中的一篇帖子.)
解決方法:(原文請參照微軟KB中的Q181050)
1. IE要4.01 sp1以上版本.
2. 在注冊表中HKEY_CURRENT_USERSoftwareMicrosoft
WindowsCurrentVersionInternet Settings中
加一DWORD類型ReceiveTimeout,值設(shè)為比如8個9.
3. restart computer.