代码之家  ›  专栏  ›  技术社区  ›  Ogglas

IIS Express Asp.Net长URL返回400个错误请求

  •  0
  • Ogglas  · 技术社区  · 6 年前

    堆栈跟踪是由于未更改正确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>
    

    原件:

    我有个奇怪的问题。

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

    以下包含303个字符的URL给出堆栈跟踪错误:

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

    此请求的URL长度超过了配置的

    异常详细信息:System.Web.HttpException:URL的长度 对于此请求,超出了配置的maxUrlLength值。

    [HttpException(0x80004005):此请求的URL长度 超过配置的maxUrlLength值。]
    System.Web.HttpRequest.validateinputifrequeuiredbyconfig()+9939787
    System.Web.PipelineStepManager.ValidateHelper(HttpContext上下文)+53

    enter image description here

    这个包含403个字符的URL给了我400个错误的请求页:

    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>
    

    How do I increase the maxUrlLength property in the config in asp.net MVC 3?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Gökhan Gök    6 年前

    在system webserver tag下的Web.config上,必须添加以下内容:

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