如何在asp.net MVC 3中增加配置中的maxUrlLength属性?

时间:2011-11-23 16:39:25

标签: asp.net-mvc

我收到此错误:

  

此请求的URL长度超出配置的长度   maxUrlLength值。

环顾我能找到的最接近的东西是在web.config中,

<requestFiltering>
   <requestLimits maxUrl="xxx">
</requestFiltering>

然而,这不是MaxUrlLength,也不解决问题。任何想法如何解决?

6 个答案:

答案 0 :(得分:76)

根据阿肖克的答案,相当于:

<httpRuntime maxUrlLength="1024" relaxedUrlToFileSystemMapping="true"/>

在web.config的<system.web>部分中。

答案 1 :(得分:9)

看看this post by Hanselman。虽然这篇文章是关于接受URL中通常无效的字符,但他还提到了如何配置路径长度和查询字符串

  

虽然我们在这里,但请注意,在ASP.NET 4中,您还可以更改允许的路径和queryString长度:

<httpRuntime maxRequestPathLength="260" maxQueryStringLength="2048" />

答案 2 :(得分:6)

我在使用C#.net 4创建的休息服务中遇到此问题。我在web.Config文件的system.web部分中设置了maxUrlLength变量。

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime maxUrlLength="2000"/>
  </system.web>
....

答案 3 :(得分:3)

你看过this msdn article了吗? 这似乎是你需要的

答案 4 :(得分:0)

在IIS8中遇到同样的问题,解决方案是修改.NET Framework的根Web.config。此文件位于%windir%\ Microsoft.NET \ Framework \ framework_version \ CONFIG中。编辑站点根目录中的web.config文件无法解决问题。

答案 5 :(得分:0)

就我而言,我在IIS应用程序(“请求过滤”区域)中直观地编辑了设置:

request filtering url length

此操作对我的web.config进行了如下修改:

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="524288000" maxQueryString="4096" />
  </requestFiltering>
</security>

正如在其他一些答案中提到的那样,请确保在请求中也考虑长查询字符串。