هل يمكنني عرض تنبيه من Global.asax على صفحة تواجه مهلة SQL؟
-
10-07-2019 - |
سؤال
في Global.asax، هل هناك طريقة للتعامل مع مهلات SQL بشكل أنيق وعرض رسالة على الصفحة المطلوبة توضح الخطأ؟أعلم أن Global.asax يحتوي على حدثي Application_Error وError، لكنني لست متأكدًا من أي حدث (إن وجد) يمكنني استخدامه لإنجاز هذا.
هل يمكنني الوصول إلى مثيل الصفحة الذي أدى إلى ظهور الخطأ الذي يعالجه Global.asax؟
شكرًا!
المحلول
في global.asax.vb
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
If TypeOf (Context.Error.GetBaseException) Is System.Data.SqlClient.SqlException Then
Dim ex As System.Data.SqlClient.SqlException = Context.Error.GetBaseException
If (ex.Errors.Count = 1 And ex.Number = -2) Then
Server.ClearError()
Response.Redirect(Context.Request.Url.ToString() & "?error=MessageHere")
End If
End If
End Sub
في C #
public void Application_Error(object sender, EventArgs e)
{
if ((Context.Error.GetBaseException) is System.Data.SqlClient.SqlException) {
System.Data.SqlClient.SqlException ex = Context.Error.GetBaseException;
if ((ex.Errors.Count == 1 & ex.Number == -2)) {
Server.ClearError();
Response.Redirect(Context.Request.Url.ToString() + "?error=MessageHere");
}
}
}
نصائح أخرى
يمكنك استخدام أخطاء web.config المخصصة كما هو موضح هنا
لا تنتمي إلى StackOverflow