首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在生产环境中捕获HttpRequestValidationException

如何在生产环境中捕获HttpRequestValidationException
EN

Stack Overflow用户
提问于 2011-02-17 19:16:07
回答 1查看 17.9K关注 0票数 22

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

代码语言:javascript
复制
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;
    }
}

如果我调试我的works应用程序,它工作得很完美。但是当我把它放到我们的生产服务器上时,服务器会忽略它,并生成“从客户端检测到一个潜在危险的错误值”-错误页面。我不知道到底发生了什么.如果有人知道问题出在哪里,或者我做错了什么?

另外,我不想在web.config中将validaterequest设置为false。

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

谢谢,布鲁诺

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-17 23:22:47

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

代码语言:javascript
复制
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;
    }
}
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5028206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档