0

再会!

我遇到了我们拥有的 ASP 经典应用程序的问题。我们正在处理 SQL 连接管理,一切都很完美,所以我们部署在另一个环境中供用户测试,其中一个 ASP 页面挂起 90 秒,结果:

Active Server Pages error 'ASP 0113' 

Script timed out 

所以,我尝试添加一些调试代码。我用的是:

Response.End

检查它挂在哪里。我终于发现,显然是我们开发的新功能挂了!这里有一点摘录:

Dim sqlConn
Set sqlConn = SessionConnection("SQLConnection")
set rsIDXMDL = SQLQuery(sqlConn, sQuery)

如果我在调用 SessionConnection() 之前放置一个 Response.End,则该过程停止。如果我在调用 SessionConnection() 之后放置 Response.End,页面会挂起 90 秒。这让我想到:“Bingo!里面的东西失败了!” 所以,只是为了好玩,我在函数的第一行放了一个 Response.End ,比如:

Function SessionConnection(SessVarName)
    Response.End
    [...]

我相信你能猜到发生了什么!!!页面仍然挂起!!!这怎么可能?

4

1 回答 1

0

理想情况下,您需要提高代码的效率,使其根本不会超时,但是如果作为创可贴无法做到这一点,您可以尝试增加超时:

Server.ScriptTimeout = 180

此值指示服务器将让 ASP 脚本运行多长时间(以秒为单位),直到它被服务器停止。默认值为 90 秒。

Set conn = CreateObject("ADODB.Connection") 
    conn.ConnectionTimeout = 120 
    conn.Open <connectionString>

其中 conn 是尚未打开的 ADODB.Connection 对象,connectionTimeout 属性将指示等待 ASP 应用程序初始连接到数据源的时间量(以秒为单位)。默认值为 15 秒

Set conn = CreateObject("ADODB.Connection") 
    conn.Open <connectionString> 
    conn.CommandTimeout = 120 

CommandTimeout 告诉服务器等待多长时间(以秒为单位),以完成发送到数据源的任何命令。在打开连接之前和之后,此值都是可编辑的。默认值为 30 秒

希望这可以帮助。

于 2012-07-13T19:30:33.907 回答