3

我们有一个 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 中使用事务连接到同一数据库服务器的站点工作正常,只有具有此代码的站点会引发错误。

4

1 回答 1

0

问题是因为从旧数据库服务器迁移到新数据库服务器的表还没有任何日志,所以在使用事务时出现错误。

日记帐维护交易和数据库更改的审计跟踪。使用事务日志和数据库更改日志,事务日志记录了每个事务的所有基本数据,包括数据值、事务时间和终端号。数据库更改日志包含由事务修改的记录的前后副本。-维基百科.org

于 2012-05-18T02:26:43.070 回答