癥狀
上傳檔案到 windows server + iis 6.0或者iis7.0 伺服器的時候遇到下列錯誤:
請求對象錯誤 'asp 0104 : 80004005′
操作被禁止
原因
iis6.0 和iis7禁止上傳超過 200kb 的檔案. 因此你需要修改 iis 的預設設定。
當然此200k限制僅限無組件上傳,如果使用aspupload等上傳時不會有此限制。
解決方案
iis6
首先停止 iis 服務,之後開啟 c:windowssystem32inetsrv 中的 metabase.xml, 並修改 aspmaxrequestentityallowed 為你需要的值(例如 1073741824, 1gb)。啟動iis服務。
若你想在iis啟動並執行時候修改其設定檔,則開啟iis管理器,開啟internet資訊服務屬性面板,鉤選"允許直接編輯設定資料庫教程,允許在iis運行時編輯iis設定資料庫設定檔"
iis7
啟動internet 資訊服務(iis)管理器,選中要修改的網站,選擇asp表徵圖,在限制屬性裡面找到最大請求實體主機限制,改為你所需要的值。
技術背景
在 iis 6.0 中, aspmaxrequestentityallowed 屬性指定了一個 asp 請求(request)可以使用的最大位元組數. 如果 content-length 頭資訊中包含的請求長度超過了 aspmaxrequestentityallowed 的值, iis 將返回一個 403 錯誤資訊.
這個屬性值與 maxrequestentityallowed 相似, 但是是針對 asp 請求的. 假如你知道自己的 asp 應用只需要處理很少的請求資料, 你可以在 world wide web publishing service (www 發布服務)層級設定全域的 maxrequestentityallowed 屬性為 1mb, 並單獨設定 aspmaxrequestentityallowed 為一個較小的值.
request 對象 錯誤 'asp 0104 : 80004005'
不允許操作
分析:
從提示的錯誤中可以知道是由於 request 引起的 說明發送的資料對錯了
突然想到 win2003 iis6 預設接收的資料是200kb 可能是post資料超過了200kb
解決辦法:
一、開啟iis在 本機電腦上查看屬性如下圖:
選中 允許直接編輯設定資料庫
二、用計事本開啟 c:windowssystem32inetsrv 中的 metabase.xml
找到 aspmaxrequestentityallowed="204800"
把後面的 204800 改一個大點的數值
然後儲存。
看一下動易的錯 誤 號:-2147467259
錯誤描述:request 對象錯誤 'asp 0104 : 80004005'不允許操作~
錯誤來源:request 對象
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服務,找到windowssystem32inesrv下的metabase.xml, 開啟,找到aspmaxrequestentityallowed 把他修改為需要的值,預設為204800,即200k,如把它修改為51200000(50m)。
然後重啟iis admin service服務。