Обновление:
Трассировка стека произошла из-за прокси, где правильный Web.Config не был изменен.Однако при создании нового проекта -> ASP.NET Web Application (.NET Framework) с использованием .NET Framework 4.6.1 точно такая же ошибка неверного запроса присутствует.Даже после обновления Web.config со следующими значениями:
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 Вопрос состоит из двух частей: почему я получаю разные ошибки и что я могу сделать, чтобы исправить это?Я знаю, что могу отправить запрос с ?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?
Длина 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
Вопрос состоит из двух частей: почему я получаю разные ошибки и что я могу сделать, чтобы исправить это?Я знаю, что могу отправить запрос с ?token= с маршрутом [Route("testReset")], чтобы заставить его работать, но это касается установки длины URL.
?token=
[Route("testReset")]
Код:
[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?
В Web.config под тегом системного веб-сервера вам нужно добавить:
<security> <requestFiltering> <requestLimits maxAllowedContentLength="1073741824" /> </requestFiltering>