我在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/