Windows2003系統下,上傳較大的檔案時,出現“Request 對象 錯誤 'ASP 0104 : 80004005'”錯誤。
更改win2003的IIS 6.0對asp的上傳檔案大小為200k限制,aspx的上傳程式沒有影響。在IIS6.0中,預設設定是特別嚴格和安全的,最大隻能傳送 204,800 個位元組,這樣可以最大限度地減少因以前太寬鬆的逾時和限制而造成的攻擊。IIS 6 出於安全考慮, 預設最大請求是200K(也即最大提交資料限額為200KByte,204800Byte)。(在 IIS 6.0 之前的版本中無此限制)
解決方案
辦法一:
第一步:修改IIS設定,允許直接編輯設定資料庫。開啟,Internet資訊服務
第二步:先在服務裡關閉iis admin service服務,找到windows\system32\inetsrv\下的metabase.xml, 開啟,找到ASPMaxRequestEntityAllowed 把他修改為需要的值,預設為204800,即200K,如把它修改為51200000(50M)。
然後重啟iis admin service服務。
辦法二:
建立一個文字檔,內容如下:
'----------------------------------------------------
set providerObj=GetObject("winmgmts:/root/MicrosoftIISv2")
set vdirObj=providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/ROOT'")
WScript.Echo "Before: " & vdirObj.AspMaxRequestEntityAllowed
vdirObj.AspMaxRequestEntityAllowed=51200000
vdirObj.Put_()
WScript.Echo "Now: " & vdirObj.AspMaxRequestEntityAllowed
'----------------------------------------------------
然後儲存為.vbs檔案,如:vf.vbs
然後在命令列模式下,執行 cscript 檔案路徑及檔案名稱,如:
cscript d:\vf.vbs
這樣ASP上傳大小就更改為了上面設定的:51200000位元組 (50兆)