HttpHandler ASHX文件中的异常处理

时间:2009-11-11 14:30:29

标签: asp.net html exception-handling httphandler

我正在使用ASHX文件以动态方式创建图像  我添加了一行代码来在我的ashx文件中抛出异常。如果我直接浏览到ashx文件,我在global.asax中的application_error可以正常处理错误。

当我在另一个页面中使用此处理程序时,我的问题是application_Error无效。比如show.aspx如果我把:

<img src="image.ashx" />

没有错误,只是一张空白图片。 我甚至尝试过自定义的httpmodule来处理错误,但没有运气。 那么如何在ashx文件中捕获错误?

更新:让事情变得更加清晰,对于异常捕获,我有两个选择 如果出于任何原因,图像生成出错,首先是将用户重定向到另一个页面 第二是如果任何原因导致ashx文件中出现一些错误,请再次使用我的静态png文件替换图像 这就是为什么我认为使用httpapplication.error会有所帮助。我的httpmodule就像:

Public Sub Init(ByVal context As System.Web.HttpApplication) Implements system.Web.IHttpModule.Init
    AddHandler context.Error, AddressOf OnError
End Sub

Private Sub OnError(ByVal sender As Object, ByVal e As EventArgs)
    Dim app As HttpApplication = CType(sender, HttpApplication)
End Sub

那么如何在OnError中实现这些?

2 个答案:

答案 0 :(得分:2)

我相信异常正如预期的那样被抛出。但是,现在异常详细信息将作为您&lt;的数据。 img&gt ;,这将显示“损坏”的图像。如果处理程序中存在错误并将错误记录在外部文本文件或其他数据源中,我建议提供不同的静态图像。

答案 1 :(得分:0)

您可以正常添加一个catch块,如果出现错误,您可以显示另一个默认图像。

相关问题