我需要为http异常错误添加到api验证中,以重定向到我的页面,我添加了以下代码,因此,当设置了如下所示的无效url时,它将重定向到我的页面:
这可以正常工作,但是只有一种情况不起作用:如果我将URL设置如下:domain.net:1234api/v1/controller/action
(如果您注意到端口和其余URL之间缺少/
, ),它不断为我提供html代码:
A potentially dangerous Request.Path value was detected from the client (:)
System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +11981492
System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +52
,我需要将其重定向到我的错误页面,但它甚至没有触发Application_Error
,并且我尝试在我的网络配置中设置自定义错误,但仍然无法正常工作,以下是我的代码:
protected void Application_EndRequest(Object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
if (application.Response.StatusCode == 404)
Server.TransferRequest("~/HttpError.aspx");
}
protected void Application_Error(object sender, EventArgs e)
{
Exception exc = Server.GetLastError();
if (exc.GetType() == typeof(HttpException))
{
Server.TransferRequest("~/HttpError.aspx");
}
}
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="HttpError.aspx">
<error statusCode="400" redirect="HttpError.aspx"/>
</customErrors>
</system.web>
</configuration>
<system.webServer>
<httpErrors errorMode="Custom" defaultResponseMode="File">
<clear />
<error statusCode="400" path="HttpError.aspx"/>
</httpErrors>
</system.webServer>