我可以在遇到 SQL 超时的页面上显示来自 Global.asax 的警报吗?

发布于 2024-08-05 21:56:14 字数 190 浏览 4 评论 0原文

在Global.asax中,有没有一种方法可以优雅地处理SQL超时,并在请求页面上显示一条消息来解释错误?我知道 Global.asax 有 Application_Error 和 Error 事件,但我不确定可以使用哪个(如果有)来完成此操作。

相关的是,我可以访问引发 Global.asax 正在处理的错误的页面实例吗?

谢谢!

In Global.asax, is there a way to handle SQL Timeouts elegantly, and display a message on the requesting page explaining the error? I know Global.asax has the Application_Error and Error events, but I'm not sure which (if any) I could use to accomplish this.

Related, can I access the page instance which raised the error that Global.asax is handling?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

‖放下 2024-08-12 21:56:14

在 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");
            
        }
    }
}

In 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

In 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 自定义错误如此处所述

You could use the web.config custom errors as explained here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文