更新:
堆栈跟踪归因于未更改正确Web.Config的代理。但是,使用.NET Framework 4.6.1创建新项目-> ASP.NET Web应用程序(.NET Framework),则会出现完全相同的错误请求错误。即使使用以下值更新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>
原始
:我有一个奇怪的问题。
以下具有203个字符的网址有效:
以下303个字符的URL给出了堆栈跟踪错误:
此请求的URL长度超过配置的 maxUrlLength值。
异常详细信息:System.Web.HttpException:URL的长度 该请求超出了配置的maxUrlLength值。
[HttpException(0x80004005):此请求的URL长度 超过配置的maxUrlLength值。]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig()+9939787
System.Web.PipelineStepManager.ValidateHelper(HttpContext上下文)+53
此URL包含403个字符,可显示400个“错误请求”页面:
问题有两个部分:为什么我会收到不同的错误,并且该如何解决?我知道我可以通过路由?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>
从此线程:
How do I increase the maxUrlLength property in the config in asp.net MVC 3?
答案 0 :(得分:0)
在Web.config的系统Web服务器标签下,您必须添加以下内容:
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
答案 1 :(得分:0)
对我来说,相同问题的原因是UrlSegmentMaxLength = 260的默认值 (请参阅https://docs.microsoft.com/en-us/troubleshoot/iis/httpsys-registry-windows)