Asp.net

asp.net - 即使發布的文件遠低於 maxRequestLength,發布文件也會給出 404 頁結果

  • September 13, 2013

我的 ASP.NET 站點上有一個頁面,用於上傳文件。我試圖調整 web.config 文件以允許更大的上傳。在我的 web.config 中,我設置:

<httpRuntime maxRequestLength="2097152" executionTimeout="3600" />

在我的頁面上,當我嘗試上傳較小的文件時,沒有問題……即使是 25MB。但是,當我嘗試上傳 50MB 的文件時,我仍然收到 404 錯誤頁面。

注意:我在另一個頁面上有一個 Flash 控制項,可以毫無問題地上傳幾乎 2gb,使用相同的 web.config 設置。在不同的 PC 上的結果相同,發佈到不同的 Web 伺服器時的結果相同。我的網路伺服器是 Windows Server 2008 R2。

對原因有任何想法嗎?為什麼flash會ok,但是plain jane upload control有這個問題?

我找到了答案。Windows Server 2008 R2 使用 IIS7(當然),在 IIS7 中,您必須在 web.config 文件中設置以下內容(在我的範例中將限制增加到 2gb):

<system.webserver>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483648" />
    </requestFiltering>
  </security>
<system.webserver>

這行得通,而其他一切都沒有。預設情況下,IIS7 將上傳限制為 30mb,除非設置了此覆蓋。

executionTimeout 僅在編譯元素中的調試屬性為 False 時適用。(另見http://msdn.microsoft.com/en-us/library/e1f13641.aspx

因此,在發布配置中啟動您的應用程序時嘗試一下。

引用自:https://stackoverflow.com/questions/6446262