HttpRequestValidationException

HttpRequestValidationException

我在global.asax.cs文件中有这段代码来处理HttpRequestValidationException。

protected void Application_Error(object sender, EventArgs e)
{
    var context = HttpContext.Current;
    var exception = context.Server.GetLastError();
    if (exception is HttpRequestValidationException)
    {
        Response.Clear();
        Response.StatusCode = 200;
        Response.Write(@"<html><head></head><body>hello</body></html>");
        Response.End();
        return;
    }
}

如果调试我的Web应用程序,则可以完美运行。但是,当我将其放在生产服务器上时,服务器将忽略它并生成“从客户端检测到潜在的request.form值”错误页面。
我不知道到底发生了什么...
如果有人知道问题出在哪里,或者我做错了..?

我也不想在web.config中将validaterequest设置为false。

服务器使用IIS7.5,而我使用的是asp.net 3.5。

谢谢,
布鲁诺

最佳答案

好吧,我发现了我自己。
我必须清除我的最后一个错误。

protected void Application_Error(object sender, EventArgs e)
{
    var context = HttpContext.Current;
    var exception = context.Server.GetLastError();
    if (exception is HttpRequestValidationException)
    {
        context.Server.ClearError();    // Here is the new line.
        Response.Clear();
        Response.StatusCode = 200;
        Response.Write(@"<html><head></head><body>hello</body></html>");
        Response.End();
        return;
    }
}

关于c# - 如何在生产中捕获HttpRequestValidationException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5028206/

10-11 02:02