【问题标题】:How to simulate an HTTP 500 error on my ASP.NET app?如何在我的 ASP.NET 应用程序上模拟 HTTP 500 错误?
【发布时间】:2011-04-14 17:31:41
【问题描述】:

我想模拟这个错误,以便根据最近的安全漏洞检查显示的一般错误页面,而不是 HTTP 500 页面。

我们在网站本身中包含针对 404 和 403 的特殊处理,因此我想确保没有特殊处理的错误也能正常工作。

【问题讨论】:

    标签: asp.net


    【解决方案1】:
    throw new Exception();
    

    这将生成一个 HTTP 500

    【讨论】:

    • 这正是我要说的(:
    • 我可以使用这个`return new HttpStatusCodeResult(500);`
    【解决方案2】:

    我认为您可以通过覆盖页面初始化并将 500 状态代码添加到响应中来做到这一点,如下所示:

    protected void Page_Init(object sender, EventArgs e)
    {
        Response.Clear();
        Response.StatusCode = 500;
        Response.End(); 
    }
    

    享受吧!

    【讨论】:

    • Got StatusCode of 200 with error message when using = throw new Exception() 通过代码直接覆盖状态码成功 = Response.StatusCode = 500
    • 我可以用这个return new HttpStatusCodeResult(500);
    【解决方案3】:

    这是一种无需以任何方式修改您的网站的方法:

    1. 从您的网络浏览器中,在您的网站上打开一个包含回发表单的页面。
    2. 按 F12 打开开发者工具。
    3. 在 HTML 选项卡中,搜索 __VIEWSTATE 并以任何方式更改值。
    4. 发布到表单

    这将导致“视图状态 MAC 验证失败”ASP.Net 异常,该异常返回 500 内部服务器错误 HTTP 响应代码。

    使用格式错误的标签破坏 web.config 也可以,但如果您尝试测试 web.config 中的某些设置(如失败的请求跟踪),则无法达到目的。

    【讨论】:

    • 我可以用return new HttpStatusCodeResult(500);
    【解决方案4】:

    更改 dll 文件的名称。如果您之后请求路由,它将使应用程序崩溃,因为它找不到控制器。我用它来测试我的日志记录。

    【讨论】:

    • 这对我有用,是一种快速测试 RemoteOnly 是否显示自定义错误的方法
    【解决方案5】:

    您可以破坏 web.config 文件。为测试添加格式错误的标签

    【讨论】:

      【解决方案6】:

      这会在经典 asp 中生成自定义 http 错误代码。

      <%@language=Jscript%>
      
      <%
          Response.Status = "996 TerraNova GeoWeb Internal Server Error";
          Response.End;
      %>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-26
        • 1970-01-01
        • 2017-11-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多