masalibの日記

システム開発、運用と猫の写真ブログです

WindowsServer2012R2 classic asp の500エラー処理について

WindowsServer2003の時は

500エラーがおきた場合にカスタムエラーを設定することで

エラーの内容をログに出力できました

f:id:masalib:20140523214948j:plain

f:id:masalib:20140523214957j:plain


	Dim objAspErr
	Dim strLogFilePath
	Dim strLogStr

	'ログファイルパス生成
	strLogFilePath = "/logs/app" & ErrCode & "Error" & DateFormat(NOW(), "YYYYMMDD") & ".log"

	'エラーオブジェクトの取得
	Set objAspErr = Server.GetLastError()

	'エラーメッセージ生成
	strLogStr = "アプリケーション実行時にエラーが発生しました" & "	"
	strLogStr = strLogStr & "[Message:" & objAspErr.Description & "]	"
	strLogStr = strLogStr & "[FILE:" & objAspErr.File & "]	"
	strLogStr = strLogStr & "[LINE:" & objAspErr.Line & "]	"
	strLogStr = strLogStr & "[QUERY STRING:" & Request.ServerVariables("QUERY_STRING") & "]	"
	strLogStr = strLogStr & "[USER_AGENT:" & Request.ServerVariables("HTTP_USER_AGENT") & "]	"
	strLogStr = strLogStr & "[REFERER:" & Request.ServerVariables("HTTP_REFERER") & "]	"
	strLogStr = strLogStr & "[REMOTE ADDR:" & Request.ServerVariables("REMOTE_ADDR") & "]	"
	strLogStr = strLogStr & "[File:" & Request.ServerVariables("SCRIPT_NAME") & "]"
	strLogStr = strLogStr & "[IP:" & Request.ServerVariables("SERVER_NAME") & "]"

   '**** ログ出力
    	Call LogWriter(strLogFilePath,strLogStr)

WindowsServer2012は

最初から登録されている 500 のエラーに設定してもとれません。500.100 をハンドリングしないといけません。

念のために500は消しました

f:id:masalib:20140523215106j:plain

f:id:masalib:20140523215114j:plain

f:id:masalib:20140523215126j:plain

 

あとビックリしたのが

今までは変数を宣言していないとエラーになっていたのが

エラーにならないこと

f:id:masalib:20140523215149j:plain

f:id:masalib:20140523215155j:plain

変数宣言系でエラーにならないのは

ありがたい

ただ、宣言していないとメモリを無駄に使ってしまうような

気がする