У меня есть следующий код в моем global.ascx, и когда я нажимаю кнопку сгенерировать ошибку, код запускается, но, похоже, происходит сбой при ошибке вставки в БД.
Я хочу, чтобы ошибка была сохраненав БД и перенаправить на default.aspx.
довольно стандартный материал.
ошибка, которую я получаю: exe.Message = "Неверный синтаксис рядом с 'System'."(похоже на что-то с объектами SQL, используемыми в global.asx)
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
Exception ex = Server.GetLastError();
StringBuilder theBody = new StringBuilder();
theBody.Append("Error Message: " + ex.ToString() + "\n");
Server.ClearError();
try
{
string sSQL = "INSERT INTO PMISwebErr VALUES ('" + theBody.ToString() + "', GETDATE())";
using (System.Data.SqlClient.SqlConnection con = STAR.Global.GetConnection())
{
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sSQL, con);
cmd.CommandType = System.Data.CommandType.Text;
cmd.ExecuteScalar();
}
Response.Redirect("~/default.aspx?Err=sysError");
}
catch (Exception exe) {
Response.Redirect("~/default.aspx?Err="+ exe.Message.ToString() );
}
}
проблема заключается в добавлении сообщения об ошибке.у него есть одиночная кавычка, которая нарушает SQL.Код получает это значение в результате в этой строке:
theBody.Append("Error Message: " + ex.ToString() + "\n");
sSQL = "INSERT INTO PMISwebErr VALUES ('URL: http://localhost:14854/PMIS/Default.aspx\nReferer: http://localhost:14854/PMIS/Default.aspx\nIP: 127.0.0.1\ nError Message: System.Web.HttpUnhandledException: Исключение типа 'System.Web.HttpUnhandledException' было thr ...
это фактическое значение из моих быстрых часов, странно видеть ...в конце.