|
要首先要修改IIS6.0中的ASP請(qǐng)求的最大字節(jié)數(shù),默認(rèn)時(shí)為200K;
方法:打開(kāi)位于 C:/Windows/System32/INETsrv 中的 metabase.XML,
并修改 ASPMaxRequestEntityAllowed 為你需要的值(例如 "1073741824", 1GB);
技術(shù)背景:
在 IIS 6.0 中, ASPMaxRequestEntityAllowed 屬性指定了一個(gè) ASP 請(qǐng)求(Request)可以使用的最大字節(jié)數(shù). 如果 Content-Length 頭信息中包含的請(qǐng)求長(zhǎng)度超過(guò)了 ASPMaxRequestEntityAllowed 的值, IIS 將返回一個(gè) 403 錯(cuò)誤信息.
這個(gè)屬性值與 MaxRequestEntityAllowed 相似, 但是是針對(duì) ASP 請(qǐng)求的. 假如你知道自己的 ASP 應(yīng)用只需要處理很少的請(qǐng)求數(shù)據(jù), 你可以在 World Wide Web Publishing Service (WWW 發(fā)布服務(wù))層級(jí)設(shè)定全局的 MaxRequestEntityAllowed 屬性為 1MB, 并單獨(dú)設(shè)定 ASPMaxRequestEntityAllowed 為一個(gè)較小的值.
注意: 在編輯文件前請(qǐng)停止 IIS 服務(wù), 否則無(wú)法保存修改后的文件.
也可以那么解決:
到微軟站點(diǎn)載了IIS6 Resource Kit Tools(http://www.microsoft.com/downloads/details.ASPx?FamilyID=56FC92EE-A71A-4C73-B628-ADE629C89499&displaylang=en),安裝后利用Metabase Explorer修改了(local)/LM/W3SVC/ASPMaxRequestEntityAllowed屬性(默認(rèn)為200K=204800),修改為1G就是了;同時(shí)修改了ASPScriptTimeout屬性調(diào)整下時(shí)限,就可以上傳大文件了。
2,.NET中
(1)在web.comfig文件中添加一個(gè)httpRuntime主鍵
<httpRuntime executionTimeout="90" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"
minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/>
maxRequestLength="40960" 是最大的請(qǐng)求數(shù),單位為:K
(2)修改C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG/machine.config文件
<httpRuntime executionTimeout="190" maxRequestLength="40960"
maxRequestLength="40960" 是最大的請(qǐng)求數(shù),單位為:K
經(jīng)實(shí)驗(yàn),(1)和(2)只要一個(gè)就可以。
配置httpRuntime也可以讓FileUpload上傳更大的文件,不過(guò)設(shè)置太大了會(huì)因用戶將大量文件傳遞到該服務(wù)器而導(dǎo)致的拒絕服務(wù)攻擊(屬性有說(shuō)明)
<httpRuntime>
<httpRuntime useFullyQualifiedRedirectUrl="true|false" maxRequestLength="size in kbytes" executionTimeout="seconds" minFreeThreads="number of threads" minFreeLocalRequestFreeThreads="number of threads" appRequestQueueLimit="number of requests" versionHeader="version string"/>
屬性
屬性 | 選項(xiàng) | 說(shuō)明 |
---|---|---|
appRequestQueueLimit | ASP.NET 將為應(yīng)用程序排隊(duì)的請(qǐng)求的最大數(shù)目。當(dāng)沒(méi)有足夠的自由線程來(lái)處理請(qǐng)求時(shí),將對(duì)請(qǐng)求進(jìn)行排隊(duì)。當(dāng)隊(duì)列超出了該設(shè)置中指定的限制時(shí),將通過(guò)“503 - 服務(wù)器太忙”錯(cuò)誤信息拒絕傳入的請(qǐng)求。 | |
executionTimeout | 指示在被 ASP.NET 自動(dòng)關(guān)閉前,允許執(zhí)行請(qǐng)求的最大秒數(shù)。 | |
enable | 指定是否在當(dāng)前的節(jié)點(diǎn)及子節(jié)點(diǎn)級(jí)別啟用應(yīng)用程序域。默認(rèn)值為 true。 | |
true | 指定啟用應(yīng)用程序域。 | |
false | 指定禁用應(yīng)用程序域。應(yīng)用程序?qū)⒉粫?huì)在內(nèi)存中加載,任何客戶端請(qǐng)求將導(dǎo)致出現(xiàn)錯(cuò)誤號(hào)為 404 的錯(cuò)誤。 | |
idleTimeOut | 指定應(yīng)用程序域在經(jīng)過(guò)多長(zhǎng)的空閑時(shí)間后將予以關(guān)閉。默認(rèn)值為 20 分鐘。 | |
enableKernelModeCache | 指定是否啟用輸出緩存。目前,該屬性只有在安裝 IIS 6.0 版或更高版本之后才起相應(yīng)的作用。輸出緩存的配置和請(qǐng)求的類型決定了是否對(duì)內(nèi)容進(jìn)行緩存。 若要對(duì)響應(yīng)進(jìn)行緩存,必須滿足以下條件:
| |
true | 指定啟用緩存。 | |
false | 指定禁用緩存。 | |
maxRequestLength | 指示 ASP.NET 支持的最大文件上載大小。該限制可用于防止因用戶將大量文件傳遞到該服務(wù)器而導(dǎo)致的拒絕服務(wù)攻擊。指定的大小以 KB 為單位。默認(rèn)值為 4096 KB (4 MB)。 | |
minFreeLocalRequestFreeThreads | ASP.NET 保持的允許執(zhí)行新本地請(qǐng)求的自由線程的最小數(shù)目。該線程數(shù)目是為從本地主機(jī)傳入的請(qǐng)求而保留的,以防某些請(qǐng)求在其處理期間發(fā)出對(duì)本地主機(jī)的子請(qǐng)求。這避免了可能的因遞歸重新進(jìn)入 Web 服務(wù)器而導(dǎo)致的死鎖。 | |
minFreeThreads | 允許執(zhí)行新請(qǐng)求的自由線程的最小數(shù)目。ASP.NET 為要求附加線程來(lái)完成其處理的請(qǐng)求使這些線程保持自由狀態(tài)。 | |
useFullyQualifiedRedirectUrl | 指示客戶端重定向是否是完全限定的(采用 {HYPERLINK "http://server/path" } 格式,這是某些移動(dòng)控件所必需的),或者指示是否代之以將相對(duì)重定向發(fā)送到客戶端。 | |
true | 指定客戶端重定向需要以完全限定的格式發(fā)送。這是通過(guò)自動(dòng)將不是完全限定的格式的所有重定向轉(zhuǎn)換為完全限定的格式來(lái)實(shí)現(xiàn)的。 | |
false | 指定客戶端重定向不需要被自動(dòng)轉(zhuǎn)換為完全限定格式。false 是默認(rèn)選項(xiàng)。 | |
versionHeader | 指定 ASP.NET 隨每個(gè)響應(yīng)所發(fā)送的版本頭的值。Microsoft Visual Studio .NET 使用該屬性來(lái)確定當(dāng)前使用的 ASP.NET 版本。這對(duì)產(chǎn)品環(huán)境來(lái)說(shuō)不是必需的,并且可以通過(guò)從 Web.config 或 Machine.config 移除該屬性,或?qū)⒃搶傩栽O(shè)置為空字符串 (versionHeader="") 來(lái)將其禁用。 |
AspNet技術(shù):C# 文件上傳 默認(rèn)最大為4M的解決方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。