代码之家  ›  专栏  ›  技术社区  ›  Asbjørn Ulsberg

如何在ASP.NET请求生命周期中处理异常

  •  0
  • Asbjørn Ulsberg  · 技术社区  · 17 年前

    Handle URI hacking gracefully in ASP.NET 在这一点上,它还涉及如何最好地处理ASP.NET请求生命周期中发生的异常。我已经找到了一种优雅地处理大多数异常的方法,但是后来我发现有些异常在请求中发生得太晚了,以至于无法处理类似这样的事情 Server.Transfer 将整个错误表示逻辑比较到它自己的页面中。

    所以,我必须在 Application_Error Response.Write 等等。很难看。我知道在某些情况下,响应流可能已经刷新,因此传输请求实际上不是一个选项。我想问的是,是否有人找到了这个问题的优雅解决方案?

    Page_Error 我会处理好的,而且我做这件事没有问题 还没有。但是如果异常发生得太早或太晚 抓住它,它就会冒出泡沫 应用程序错误 ,我该怎么做才能知道是早还是晚?

    如果在生命周期的后期,我可能不得不这样做 直接来自 . 问题在于,我们试图 如果请求中的内容太多而无法执行,则会导致异常。

    那个么,有并没有一个全局枚举或类似的方法来表明,用响应做创造性的事情是否为时已晚?

    3 回复  |  直到 17 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    我使用这种方法来捕获在web控件或页面中生成的所有错误。它只需要从基类继承(一个用于页面,一个用于用户控件),每个页面或用户控件都可以实现自己的HandleException方法并执行它需要执行的任何操作。 完整代码如下:

    Transparent generic exception handling for asp.net / MOSS2007 (with code)

        2
  •  0
  •   REA_ANDREW    17 年前

    我认为我的建议是使用ASP.NET运行状况监视和WMI事件提供程序来处理以下错误:

    http://msdn.microsoft.com/en-us/library/ms178713.aspx

    希望这有助于:

    安得烈

        3
  •  0
  •   eglasius    17 年前

        <!--
            The <customErrors> section enables configuration 
            of what to do if/when an unhandled error occurs 
            during the execution of a request. Specifically, 
            it enables developers to configure html error pages 
            to be displayed in place of a error stack trace.
    
        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
    

    在整个处理程序上,只需记录异常,并让asp.net执行重定向。

    如果您仍然想继续使用您的客户方法,我建议您查看可用的asp.net源代码,并检查它是如何做到这一点的。

    推荐文章