2016-03-30 43 views
0

這讓我瘋狂。我們最近遷移到亞馬遜EC2服務,現在我們的應用程序中的文件上傳(使用Motobit巨大的ASP上傳)在任何大於120kb的文件上失敗。我知道默認限制是200kb,但是對於大於120的任何錯誤,錯誤編號爲-2147024893(0x80070003),沒有描述/細節。我無法在事件查看器或IIS日誌中找到任何內容來幫助我指出任何方向。上傳文件與經典的ASP - 不能大於120 KB?

我確實進入了IIS下的ASP站點,並將最大請求實體主體數限制從200000更改爲400000,並沒有任何區別。我甚至嘗試了一個iisreset,並且在進行更改之後重新啓動了服務器,以確保它在無望的絕望中得到應用。

我試過了許多不同的文件和文件大小。我能夠上傳的最多的是一個120KB的文件。它不是一個代碼問題,因爲這個相同的代碼在我的本地盒子(IIS 7)上沒有問題地工作,並且直接從我們的舊服務器上直接拷貝過來。

ASP Limits Properties 編輯:我也曾嘗試沒有結果如下:

設置最大的請求過濾設置允許的內容長度30000000(30 MB)。

添加手動編輯的web.config和requestLimits maxAllowedContentLength =「15728640」和的httpRuntime的maxRequestLength =「2147483647」

+0

您是否嘗試過使用另一個上傳組件,如果有另一個(或多個)測試?只是爲了說明這實際上是一個「不是代碼」的問題。 – statosdotcom

+0

我還沒有。這看起來像是IIS 8.5或其他配置問題。 Thjs相同的代碼在IIS 7上本地工作,並在舊服務器上完美工作。我們有大約十幾個地方可以通過表單上傳文件,並且只要有文件或文件組合超過126KB,就會在新服務器上失敗。您可以上傳一個文件或125個文件的組合,它完美的工作。 –

回答

1

我希望這可以幫助別人的未來,因爲我敲我的頭靠在我的辦公桌上,試圖解決這個。

該組件的最大內存設置爲128K。任何大於此的文件都不會存儲在內存中,而是存儲在臨時文件夾中。默認的臨時文件夾是C:\ Windows \ Temp。

罪魁禍首是在高級設置下的應用程序池設置。 '加載用戶配置文件'被設置爲true。導致組件試圖在C:\ Users中使用臨時路徑,這是失敗的。有3個解決方案:

  1. 集加載用戶配置文件=假
  2. 分配在代碼中的臨時文件夾(Form.TempPath = 「」)
  3. C語言創建的文件夾:\用戶(用Response.write form.CheckRequirements)

對於我們的情況,#1是完美的解決方案。 #2需要編輯超過100個文件,並且#3只在需要將#1設置爲真時需要。