循环(非无限循环)期间应用程序池崩溃

时间:2019-08-01 08:26:25

标签: iis vbscript asp-classic

如标题中所述, 我有一个Web应用程序,用户应该在其中上传excel文件, 然后,系统将读取它并将其放入记录集,然后将其循环以逐一读取要处理的数据到数据库中。

问题是,它可以很好地处理小数据,但是当我尝试处理大约919条记录时,它停留在大约890条记录中,而应用程序池本身就停止了,我猜它崩溃了。

我尝试将每100条记录的response.flush无效。在服务器内部运行进程会给我这个错误,大约890条记录, w3wp.exe发生未处理的win32异常。

谢谢。

该代码采用经典的ASP,vbscript

我的初始代码:

Set objConn = Server.CreateObject("ADODB.Connection")   
dim tmpRS
objConn.open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & folderPath & "\" & fname_ & "; Extended Properties='Excel 8.0;HDR=No'"

Set cat = Server.CreateObject("ADOX.Catalog")
cat.ActiveConnection = objConn

For tnum = 0 To cat.Tables.count - 1
    Set tbl = cat.Tables(tnum)

    set objRS = server.createObject("ADODB.recordset")
    objRS.Open "SELECT * FROM [" & tbl.Name & "]" , objConn
    if objRs.eof = false Then
        set tmpRS = mydb("INSERT INTO tmpTable VALUES ('" & TRIM(objrs.fields.item(0)) & "')", 3)
        set tmpRS = nothing
    end if
    set objrs = nothing

Next
objConn.close

我发现的当前解决方案:

Set objConn = Server.CreateObject("ADODB.Connection")   
dim tmpRS
objConn.open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & folderPath & "\" & fname_ & "; Extended Properties='Excel 8.0;HDR=No'"

set objRS = server.createObject("ADODB.recordset")
objRS.Open "SELECT * FROM [Sheet1$]" , objConn
if objRs.eof = false Then
    set tmpRS = mydb("INSERT INTO tmpTable VALUES ('" & TRIM(objrs.fields.item(0)) & "')", 3)
    set tmpRS = nothing
end if
set objrs = nothing

如果有人能指出我的初始代码有什么问题,我将不胜感激。

0 个答案:

没有答案