エラーをトラップしてエラーの詳細をデータベースに保存し、クラシック ASP のカスタム エラー ページにリダイレクトする方法は?
Web サイトのすべてのページに ASP ページを含める必要があり、エラーが発生した場合は、そのエラーの詳細を取得し、データベースに保存するか、メール ID にメールして、カスタム エラー ページにリダイレクトします。何か考えがあれば、私を助けてください。
エラーをトラップしてエラーの詳細をデータベースに保存し、クラシック ASP のカスタム エラー ページにリダイレクトする方法は?
Web サイトのすべてのページに ASP ページを含める必要があり、エラーが発生した場合は、そのエラーの詳細を取得し、データベースに保存するか、メール ID にメールして、カスタム エラー ページにリダイレクトします。何か考えがあれば、私を助けてください。
エラーをキャッチするには、javascript で try catch メソッドを使用します。catch ブロック内で、データをサーバーにポストします。サーバーには、使い慣れた aspx ページまたは php ページがあります。この投稿からパラメータとして挿入されるデータを aspx/php ファイルに取得し、そのファイルから DB に挿入します。
<script>
var txt="";
function ProcessData()
{
try
{
....
}
catch(err)
{
var message = err.message;
$ajax({
type:"POST",
url:"Errorhandler.aspx/InsertErrordetails",
data:"{error: '" + message + "'}",
clientType:"application/json; charset=utf-8",
datatype:"json",
async: false,
success: function () { alert("success"); },
error: function(){alert("error");}
});
}
}
</script>
サーバー側のコードは次のようになります。
public static void InsertErrordetails(string error)
{
SqlConnection Con = new SqlConnection(@"Server=db;Integrated Security=True;" + "Database=userdb");
string query = "INSERT INTO [LogTable]([Message])" +
"VALUES (@error)";
SqlCommand cmd = new SqlCommand(query, Con);
cmd.Parameters.AddWithValue("@Message", error);
try
{
Con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
Con.Close();
}
}