.NET无法正确读取web.config?

时间:2012-03-24 22:24:08

标签: .net asp.net-mvc-3 web-config

我有

   <system.web>
        <httpRuntime maxRequestLength="500000000"  />
    </system.web>

但是当我通过

阅读 web.config
 Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);

            HttpRuntimeSection section =
              (HttpRuntimeSection)config.GetSection("system.web/httpRuntime"); 

我看到maxRequestLength !!

4096

怎么可能?谢谢你的任何线索!

P.S。它是ASP .NET MVC3 Razor项目

2 个答案:

答案 0 :(得分:1)

有许多事情需要考虑:

  • 是你的&lt; system.web&gt;元素&lt; configuration&gt;的直接子元素元件?
  • 您的web.config文件是否位于IIS应用程序范围根目录的根目录中?
  • 是&lt; httpRuntime&gt;元素锁定在&#34; root&#34; .config文件,以便其他配置文件不能覆盖值?

如果您正在使用IIS,那么我建议您使用配置编辑器调查配置优先级。

答案 1 :(得分:1)

我的猜测是500,000,000 Kb高于maxRequestLength属性的最大值,因此它被分配了默认值(4,096)。文档没有说明maxRequestLength可以采用的最大值是多少,但我的猜测是20,97,151 Kb,因为它大约等于2 ^ 31字节,int可以存储的最大值。