我们有一个 ASP Classic旧版 Web 应用程序,它托管在 IIS 中的 Windows Server 2003 中,它连接到我们的数据库服务器中,它是一个AS/400。我们目前刚刚将数据库服务器从v5r4m0升级到v6r1m0,因此我们在 Web 服务器中安装更新以连接到新的数据库服务器并将所有连接字符串更改为正确的数据库服务器。
我们的 ASP Classic 站点中有此代码:
set objConn2 = server.CreateObject("ADODB.Connection")
objConn2.open connStringGlobal
objConn2.BeginTrans
if rsCheck.eof then
objConn2.execute(InsertQuery)
objConn2.execute(InsertQueryRCDREF)
objConn2.execute(UpdateQuery)
end if
objConn2.CommitTrans
if err.number <> 0 then
session("errMsg") = "An error occured while processing your request. Please try again. <br><br>[Error Description : " & err.Description & "]<br><br>" & InsertQuery & "<br><br>" & UpdateQuery & "<br><br>" & InsertQueryRCDREF
objConn2.RollBackTrans
objConn2.close
set objConn2 = nothing
response.Redirect(request.ServerVariables("HTTP_REFERER"))
else
objConn2.close
set objConn2 = nothing
response.Redirect("default.asp?p=pending")
end if
但它会在以下行中引发错误objConn2.BeginTrans
:
CWBZZ5008尝试连接系统时发生安全错误
这里发生的是打开连接并objConn2.execute
执行行,数据被插入到我们的数据库中,尽管它经历了回滚事务并关闭连接并在 UI 中显示错误消息。
到目前为止,这是我们尝试过的:
- 将连接字符串服务器名替换为数据库服务器的IP地址
- 如果有未关闭的连接,请检查所有遗留代码
但我们仍然没有运气。该站点目前正在生产中,由于此错误而停止,因此我们确实需要修复此问题,并且已经尝试修复此问题好几天了。请我们真的需要帮助。
我们在同一台服务器上运行的其他站点以及在 ASP Classic 中使用事务连接到同一数据库服务器的站点工作正常,只有具有此代码的站点会引发错误。