Длинный URL IIS Express Asp.Net возвращает 400 неверных запросов - PullRequest
0 голосов
/ 20 сентября 2018

Обновление:

Трассировка стека произошла из-за прокси, где правильный Web.Config не был изменен.Однако при создании нового проекта -> ASP.NET Web Application (.NET Framework) с использованием .NET Framework 4.6.1 точно такая же ошибка неверного запроса присутствует.Даже после обновления Web.config со следующими значениями:

<system.web>
  <authentication mode="None"/>
  <httpRuntime targetFramework="4.6.1" maxUrlLength="2048" maxQueryStringLength="32768" relaxedUrlToFileSystemMapping="true" />
</system.web>
...
<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="true">
      <requestLimits maxQueryString="32768" maxAllowedContentLength="32768" />
    </requestFiltering>
  </security>
</system.webServer>

Оригинал:

У меня странная проблема.

Работает следующий URL с 203 символами:

https://localhost:44369/api/Account/testReset/AQAAANCMnd8BFdERjHoAwE12fCl12bsBAAAA9B6VBWG0rESm48zX3kvFAgAAAAACAAAAAAAQZgAAAAEAACAAAABrejIuYGBxLG912bGeknd3Iww12b9dhdzE99tfhdGW1FPbmQAAAAAOgAAAAAIAACAAAAAWg

Следующий URL с 303 символами выдает ошибку трассировки стека:

https://localhost:44369/api/Account/testReset/AQAAANCMnd8BFdERjHoAwE12fCl12bsBAAAA9B6VBWG0rESm48zX3kvFAgAAAAACAAAAAAAQZgAAAAEAACAAAABrejIuYGBxLG912bGeknd3Iww12b9dhdzE99tfhdGW1FPbmQAAAAAOgAAAAAIAACAAAAAWgI6mOVdROCbpPBF71QQsivA1VaIPJuALkCN4A5kFUEAAAAAa905JtNQkjp1KFUZJks6PuShgpYDv4nQvTAJTYnzxJu5BvT3AdB12b

Длина URL-адреса для этого запроса превышает настроенное значение maxUrlLength.

Сведения об исключении: System.Web.HttpException: длина URL-адреса для этого запроса превышает настроенное значение maxUrlLengthзначение.

[HttpException (0x80004005): длина URL-адреса для этого запроса превышает настроенное значение maxUrlLength.]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig () + 9939787
System.Web.PipelineStepManager.*https://localhost:44369/api/Account/testReset/AQAAANCMnd8BFdERjHoAwE12fCl12bsBAAAA9B6VBWG0rESm48zX3kvFAgAAAAACAAAAAAAQZgAAAAEAACAAAABrejIuYGBxLG912bGeknd3Iww12b9dhdzE99tfhdGW1FPbmQAAAAAOgAAAAAIAACAAAAAWgI6mOVdROCbpPBF71QQsivA1VaIPJuALkCN4A5kFUEAAAAAa905JtNQkjp1KFUZJks6PuShgpYDv4nQvTAJTYnzxJu5BvT3AdB12bIobF0DrIjWDgzrTa7ddaOLWfekVuEvEZJQAAAAN9tYCLKXD6Z1BembCCgBa7XkUhs0aOsLj0euwKYaR12b799hD812bO1pMsKXwl

enter image description here

Вопрос состоит из двух частей: почему я получаю разные ошибки и что я могу сделать, чтобы исправить это?Я знаю, что могу отправить запрос с ?token= с маршрутом [Route("testReset")], чтобы заставить его работать, но это касается установки длины URL.

Код:

[HttpGet]
[AllowAnonymous]
[Route("testReset/{token}")]
public IHttpActionResult Test(string token)
{
    return Ok();
}

Web.config:

<system.web>
  <httpRuntime targetFramework="4.5.2" maxUrlLength="2048" maxQueryStringLength="32768" relaxedUrlToFileSystemMapping="true" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="true">
      <requestLimits maxQueryString="32768" />
    </requestFiltering>
  </security>
</system.webServer>

Из этой темы:

Как увеличить свойство maxUrlLengthв конфиге в asp.net MVC 3?

1 Ответ

0 голосов
/ 20 сентября 2018

В Web.config под тегом системного веб-сервера вам нужно добавить:

 <security>
<requestFiltering>
  <requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>

...