IISのWindowsServer2003でホストされているASPClassicレガシーWebアプリケーションがあり、 AS/400であるデータベースサーバーに接続します。現在、データベースサーバーをv5r4m0からv6r1m0にアップグレードしたばかりなので、Webサーバーに更新をインストールして、新しいデータベースサーバーに接続し、すべての接続文字列を適切なデータベースサーバーに変更します。
ASPクラシックサイトに次のコードがあります。
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アドレスに置き換えます
- 閉じられていない接続がある場合は、すべてのレガシーコードを確認してください
しかし、それでも私たちは運がありません。このサイトは現在本番環境にあり、このエラーのために停止されています。そのため、これを修正する必要があり、すでに何日も修正を試みていました。本当に助けが必要です。
同じサーバーとASPClassicで実行され、トランザクションで同じデータベースサーバーに接続する他のサイトは正常に機能しますが、このコードを使用するこのサイトのみがエラーをスローします。