C# 文件上傳 默認(rèn)最大為4M的解決方法
要首先要修改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)將其禁用。 |
相關(guān)文章
WebService出現(xiàn)"因 URL 意外地以 結(jié)束,請(qǐng)求格式無(wú)法識(shí)別"的解決方法
因 URL 意外地以“/GetReceivedInvoices”結(jié)束,請(qǐng)求格式無(wú)法識(shí)別。2009-01-01VB.NET驗(yàn)證郵件地址的合法性實(shí)現(xiàn)代碼
現(xiàn)在,對(duì)于用戶在Web頁(yè)面上或電話中給出的Email地址,我們?cè)絹?lái)越不敢肯定它是否真的有效。在今天這個(gè)垃圾郵件泛濫成災(zāi)的年代,人們完全有理由舍不得輕易透露Email地址。2011-04-04.Net 項(xiàng)目代碼風(fēng)格要求小結(jié)
代碼風(fēng)格沒(méi)有正確與否,重要的是整齊劃一,這是我擬的一份《.Net 項(xiàng)目代碼風(fēng)格要求》,供大家參考2015-12-12ASP.NET Core使用HttpClient調(diào)用WebService
這篇文章介紹了ASP.NET Core使用HttpClient調(diào)用WebService的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03asp.net兩級(jí)聯(lián)動(dòng)(包含添加和修改)
兩級(jí)聯(lián)動(dòng)實(shí)現(xiàn)代碼2009-01-01asp.net 通用的連接數(shù)據(jù)庫(kù)實(shí)例代碼
數(shù)據(jù)庫(kù)連接是所有程序開(kāi)發(fā)是會(huì)用到的,只是不同程序與數(shù)據(jù)庫(kù)連接的方法不一樣,下面我來(lái)介紹asp.net中數(shù)據(jù)庫(kù)連接代碼,有需要的朋友可以參考一下2013-08-08