IIS出於安全考慮限制了大文件的上傳,而網上百度到的大部分解決方法都是用一個管理員權限的記事本打開一個文件修改參數,但是我發現里面根本沒有網上所說的那些參數,最后自己找到了修改發布文件的webconfig的方法解決的IIS對大文件上傳的限制。
首先在system.web中加入以下代碼
- <httpRuntime
- maxRequestLength="2097151"//最大上傳長度
- useFullyQualifiedRedirectUrl="true"
- executionTimeout="6000"//最大響應時間
- minFreeThreads="8"
- minLocalRequestFreeThreads="4"
- appRequestQueueLimit="100"
- enableVersionHeader="true"
- />
這個也是網上百度答案中比較多的加法,這里修改最大上傳的長度為2097151kb也就是2G,可以根據自己的需要修改這個大小。而executionTimeout屬性是用於限制文件上傳服務器的響應時間,也就是說如果網速很慢,上傳同樣大小的文件可能需要給予更長的響應時間,否則雖然沒有達到上傳大小限制但因為上傳超時而被ISS拒絕。
但是以上方法仍然不夠,我們還需要添加一個很關鍵的東西來修改IIS中的屬性,第一次成功是通過打開IIS對應發布文件的
1、打開IIS選擇你所發布的網頁右邊屬性的最下面一項
2、打開后根據這個路徑打開:system.webserver/security/requestFiltering
3、修改下圖表示的部分的大小限制,單位為byte(圖中為最大值)
這個地方默認是30000000byte,我將它修改成了IIS的最大限制2G(不到2G)。這種修改方法不是一勞永逸,如果重新發布或者重新選擇別的發布文件那么它將會重置成30000000byte。
所以最后的解決方法是,在發布文件的webconfig中加入以下代碼(放在system.web之外):
- <system.webServer>
- <security>
- <requestFiltering>
- <requestLimits maxAllowedContentLength="2072576000"/>
- </requestFiltering>
- </security>
- </system.webServer>
這樣不管你發布它的IIS應用默認是多少,加載了這個網站后都會自動被設置為2G大小(可以根據自己的需求去修改這個大小)。