ASP 実行エラーの関数コードをキャプチャして保存します。ASP コード実行エラーを取得する必要がある場合は、プロセス名 catch(str) を参照してください。
使用方法:
次のようにコードをコピーします。
エラー時は次から再開
'データベース接続などのコード
call catch (ユーザーに表示されるプロンプトメッセージ)
機能: IIS エラー メッセージをクリアし、エラー メッセージをカスタマイズしてユーザーに返し、エラー メッセージを txt ファイルに保存します (もちろん、カスタム ページなどにリダイレクトするためにわずかな変更を加えることもできます)。
コード:
次のようにコードをコピーします。
<%
明示的なオプション
' 例 1 ------------------------
'on errorresume next と併用する必要がありますが、デバッグ中にエラーの詳細が表示されないように、Web ページが正式にリリースされる前にコメントアウトすることをお勧めします。
エラー時は次から再開
'i が定義されていないため、エラーが発生します。catch を使用してエラーをクリアし、メモ帳に保存します。
私
call catch(ページにアクセスできません)
'---------------------------------
'例 2--------------------------------------
関数conn()
'次のエラー再開時に使用する必要があります
エラー時は次から再開
'......データベースに接続するためのコード
call catch (データベースオープンエラー)
終了関数
'---------------------------------
サブキャッチ(str)
if err.number <> 0 then
薄暗い温度、パス
'エラー ログの絶対パス (/error_log.txt など)
パス = /table/error_log.txt
tmp = tmp & エラーページ: & geturl & vbcrlf
tmp = tmp & エラー時刻: & now() & vbcrlf
tmp = tmp & 訪問先 IP: & ip & vbcrlf
tmp = tmp & プロンプトメッセージ: & str & vbcrlf
tmp = tmp & エラーコード: & err.number & vbcrlf
tmp = tmp & エラーメッセージ: & err.description & vbcrlf
tmp = tmp & アプリケーション: & err.source & vbcrlf & vbcrlf & vbcrlf
tmp = tmp & file_read(パス)
file_save(tmp,path,1) を呼び出します
err.clear()
死ぬ(str)
終了する場合
エンドサブ
'catch で使用される関数は次のとおりです----------------------
サブエコー(str)
応答.書き込み(文字列)
エンドサブ
サブディ(文字列)
echo(str) : 応答.end()
エンドサブ
関数ip()
ip = request.servervariables(remote_addr)
終了関数
'現在のURLを取得する
関数geturl()
薄暗い温度
if lcase(request.servervariables(https)) = off then
tmp = http://
それ以外
tmp=https://
終了する場合
tmp = tmp & request.servervariables(server_name)
if request.servervariables(server_port) <> 80 then
tmp = tmp & : & request.servervariables(server_port)
終了する場合
tmp = tmp & request.servervariables(url)
if トリム(request.querystring) <> then
tmp = tmp & ? & トリム(request.queryString)
終了する場合
geturl = tmp
終了関数
'機能: ファイルの内容を文字列に読み取ります
関数 file_read(パス)
薄暗い tmp : tmp = false
file_exists(path) でない場合、 file_read = tmp : 関数を終了します
dim ストリーム : ストリーム = サーバー.CreateObject(ADODB.Stream) を設定します
ストリーム付き
.type = 2 'テキストタイプ
.mode = 3 '読み取りおよび書き込みモード
.charset = gb2312
。開ける
.loadfromfile(server.MapPath(パス))
tmp = .readtext()
で終わる
stream.close : ストリーム = 何も設定しない
ファイル読み取り = tmp
終了関数
'機能: 文字列をファイルに保存
関数 file_save(str,path,model)
モデル<>0かつモデル<>1の場合、モデル=1
model=0 かつ file_exists(path) の場合、 file_save=true : 関数を終了します
dim ストリーム : ストリーム = サーバー.CreateObject(ADODB.Stream) を設定します
ストリーム付き
.type = 2 'テキストタイプ
.charset = gb2312
。開ける
.writetext str
.savetofile(server.MapPath(パス)),モデル+1
で終わる
stream.close : ストリーム = 何も設定しない
file_save = ファイル_存在(パス)
終了関数
'機能: ファイル/フォルダーが存在するかどうかを検出します
関数ファイル_存在(パス)
薄暗い tmp : tmp = false
dim fso : set fso = server.CreateObject(Scripting.FilesyStemObject)
fso.fileexists(server.MapPath(path)) の場合、tmp = true
fso.folderexists(server.MapPath(path)) の場合、 tmp = true
fso = 何も設定しない
file_exists = tmp
終了関数
%>