2012-03-24 108 views
0

.NET無法正確讀取web.config?

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

但是當我通過

Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath); 

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

閱讀的web.config我看到maxRequestLength 值!

這怎麼可能?感謝您的任何線索!

P.S.這是ASP .NET MVC3剃刀項目

+0

我有一個類似的問題,我從來沒有完全解決,但在這種情況下,一些答案可能會有所幫助。請參閱http://stackoverflow.com/questions/7536550/wcf-service-reference-support-files-not-updating – 2012-03-24 22:40:31

+0

_「理論上,最大文件上傳大小相當大,但由於ASP.NET健康狀況監控,您不能在ASP.NET中上傳超大文件,ASP.NET工作進程具有2千兆字節(GB)的虛擬地址空間,但由於運行狀況監視,ASP.NET工作進程僅使用1 GB多一點的內存內存碎片「。_ http://support.microsoft.com/kb/295626/en-us – 2012-03-24 22:42:45

回答

1

我的猜測是500,000,000 Kb高於maxRequestLength屬性的最大值,因此它被分配了默認值(4,096)。該文檔沒有說明maxRequestLength可以採用的最大值是多少,但我的估計是20,97,151 Kb,因爲它大致等於2^31個字節,即int可以存儲的最大值。

+0

好的。但是我提出了任何值,即100000,我無法看到它 – 2012-03-24 22:36:34

1

有一些事情要考慮:

  • 是您<的System.Web >元素<配置>元素的直接孩子?
  • 您的web.config文件位於您的IIS應用程序作用域根目錄的根目錄中嗎?
  • <httpRuntime>元素被鎖定在「root」.config文件中,因此值不能被其他配置文件覆蓋?

如果您使用IIS,那麼我推薦使用配置編輯器來調查配置優先順序。

+0

您的元素是元素的直接子元素嗎?是 – 2012-03-24 22:30:51

+0

您的web.config文件位於IIS應用程序作用域根目錄的根目錄中嗎?是的 – 2012-03-24 22:31:14