Не работает дескриптор System.Web.HTTPException - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно добавить в мои api проверки для ошибки http исключений, чтобы перенаправить на мою страницу, я добавил следующий код, поэтому, когда неверный URL-адрес установлен, как показано ниже, он перенаправляет на мою страницу:

  • Длина превышает максимально допустимую длину.
  • Опасные символы: [>, <, &, *,:,….] </li>

Это работает нормально, но не работает только один случай: если я установил URL следующим образом: domain.net:1234api/v1/controller/action (если вы заметили, что между портом и остальной частью URL отсутствует /), он продолжает давать мне 400 с 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...