【问题标题】:Override, extend or roll your own HttpException?覆盖、扩展或滚动您自己的 HttpException?
【发布时间】:2012-03-20 12:40:06
【问题描述】:

我希望能够控制我的 Http 异常,以便能够指示响应正文中的内容。如果我抛出一个标准的HttpException(404, "not found"); 然后使用 fiddler 我可以看到 404 状态代码已设置,但是所有这些垃圾 html 都被塞入了响应正文。

有没有办法覆盖或扩展 HttpException 类以允许您将自己的内容注入响应正文?

我尝试实现我自己的CustomHttpException,就像 HttpException 扩展了 ExternalException 类一样,但无论我如何切割它,系统总是在正文中使用相同的标准 html 引发 500 错误。

有什么帮助吗?

【问题讨论】:

    标签: c# asp.net httpexception


    【解决方案1】:

    不,不,不。

    看看CustomErrors

    基本上你会做这样的事情

        <customErrors defaultRedirect="GenericError.htm"
                      mode="RemoteOnly">
           <error statusCode="404"
                  redirect="NotFound.aspx"/>
        </customErrors>
    

    【讨论】:

    • 假设我将用户友好的 html 页面返回给浏览器。如何处理 ajax 调用?
    • 并非如此,您可以通过动态 .aspx url 重定向错误,您可以在其中在代码隐藏中操作生成的内容。您使用的是 asp.net webforms 还是 asp.net-mvc?
    • MVC 3,我想要一个谨慎的 Rest 服务,它可以返回正确的 http 状态代码以及浏览器/ajax/移动应用程序等使用的 json 或 xml。
    • 您可以从HandleErrorAttribute 派生并控制生成的内容。
    猜你喜欢
    • 2019-11-20
    • 2020-09-07
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多