C# 文件上傳 默認(rèn)最大為4M的解決方法
要首先要修改IIS6.0中的asp請求的最大字節(jié)數(shù),默認(rèn)時(shí)為200K;
方法:打開位于 C:\Windows\System32\Inetsrv 中的 metabase.XML,
并修改 AspMaxRequestEntityAllowed 為你需要的值(例如 "1073741824", 1GB);
技術(shù)背景:
在 IIS 6.0 中, AspMaxRequestEntityAllowed 屬性指定了一個(gè) ASP 請求(Request)可以使用的最大字節(jié)數(shù). 如果 Content-Length 頭信息中包含的請求長度超過了 AspMaxRequestEntityAllowed 的值, IIS 將返回一個(gè) 403 錯(cuò)誤信息.
這個(gè)屬性值與 MaxRequestEntityAllowed 相似, 但是是針對 ASP 請求的. 假如你知道自己的 ASP 應(yīng)用只需要處理很少的請求數(shù)據(jù), 你可以在 World Wide Web Publishing Service (WWW 發(fā)布服務(wù))層級設(shè)定全局的 MaxRequestEntityAllowed 屬性為 1MB, 并單獨(dú)設(shè)定 AspMaxRequestEntityAllowed 為一個(gè)較小的值.
注意: 在編輯文件前請停止 IIS 服務(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" 是最大的請求數(shù),單位為:K
(2)修改C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config文件
<httpRuntime executionTimeout="190" maxRequestLength="40960"
maxRequestLength="40960" 是最大的請求數(shù),單位為:K
經(jīng)實(shí)驗(yàn),(1)和(2)只要一個(gè)就可以。
配置httpRuntime也可以讓FileUpload上傳更大的文件,不過設(shè)置太大了會因用戶將大量文件傳遞到該服務(wù)器而導(dǎo)致的拒絕服務(wù)攻擊(屬性有說明)
<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) | 說明 |
---|---|---|
appRequestQueueLimit | ASP.NET 將為應(yīng)用程序排隊(duì)的請求的最大數(shù)目。當(dāng)沒有足夠的自由線程來處理請求時(shí),將對請求進(jìn)行排隊(duì)。當(dāng)隊(duì)列超出了該設(shè)置中指定的限制時(shí),將通過“503 - 服務(wù)器太忙”錯(cuò)誤信息拒絕傳入的請求。 | |
executionTimeout | 指示在被 ASP.NET 自動(dòng)關(guān)閉前,允許執(zhí)行請求的最大秒數(shù)。 | |
enable | 指定是否在當(dāng)前的節(jié)點(diǎn)及子節(jié)點(diǎn)級別啟用應(yīng)用程序域。默認(rèn)值為 true。 | |
true | 指定啟用應(yīng)用程序域。 | |
false | 指定禁用應(yīng)用程序域。應(yīng)用程序?qū)⒉粫趦?nèi)存中加載,任何客戶端請求將導(dǎo)致出現(xiàn)錯(cuò)誤號為 404 的錯(cuò)誤。 | |
idleTimeOut | 指定應(yīng)用程序域在經(jīng)過多長的空閑時(shí)間后將予以關(guān)閉。默認(rèn)值為 20 分鐘。 | |
enableKernelModeCache | 指定是否啟用輸出緩存。目前,該屬性只有在安裝 IIS 6.0 版或更高版本之后才起相應(yīng)的作用。輸出緩存的配置和請求的類型決定了是否對內(nèi)容進(jìn)行緩存。
若要對響應(yīng)進(jìn)行緩存,必須滿足以下條件:
| |
true | 指定啟用緩存。 | |
false | 指定禁用緩存。 | |
maxRequestLength | 指示 ASP.NET 支持的最大文件上載大小。該限制可用于防止因用戶將大量文件傳遞到該服務(wù)器而導(dǎo)致的拒絕服務(wù)攻擊。指定的大小以 KB 為單位。默認(rèn)值為 4096 KB (4 MB)。 | |
minFreeLocalRequestFreeThreads | ASP.NET 保持的允許執(zhí)行新本地請求的自由線程的最小數(shù)目。該線程數(shù)目是為從本地主機(jī)傳入的請求而保留的,以防某些請求在其處理期間發(fā)出對本地主機(jī)的子請求。這避免了可能的因遞歸重新進(jìn)入 Web 服務(wù)器而導(dǎo)致的死鎖。 | |
minFreeThreads | 允許執(zhí)行新請求的自由線程的最小數(shù)目。ASP.NET 為要求附加線程來完成其處理的請求使這些線程保持自由狀態(tài)。 | |
useFullyQualifiedRedirectUrl | 指示客戶端重定向是否是完全限定的(采用 {HYPERLINK "http://server/path" } 格式,這是某些移動(dòng)控件所必需的),或者指示是否代之以將相對重定向發(fā)送到客戶端。 | |
true | 指定客戶端重定向需要以完全限定的格式發(fā)送。這是通過自動(dòng)將不是完全限定的格式的所有重定向轉(zhuǎn)換為完全限定的格式來實(shí)現(xiàn)的。 | |
false | 指定客戶端重定向不需要被自動(dòng)轉(zhuǎn)換為完全限定格式。false 是默認(rèn)選項(xiàng)。 | |
versionHeader | 指定 ASP.NET 隨每個(gè)響應(yīng)所發(fā)送的版本頭的值。Microsoft Visual Studio .NET 使用該屬性來確定當(dāng)前使用的 ASP.NET 版本。這對產(chǎn)品環(huán)境來說不是必需的,并且可以通過從 Web.config 或 Machine.config 移除該屬性,或?qū)⒃搶傩栽O(shè)置為空字符串 (versionHeader="") 來將其禁用。 |
相關(guān)文章
WebService出現(xiàn)"因 URL 意外地以 結(jié)束,請求格式無法識別"的解決方法
因 URL 意外地以“/GetReceivedInvoices”結(jié)束,請求格式無法識別。2009-01-01VB.NET驗(yàn)證郵件地址的合法性實(shí)現(xiàn)代碼
現(xiàn)在,對于用戶在Web頁面上或電話中給出的Email地址,我們越來越不敢肯定它是否真的有效。在今天這個(gè)垃圾郵件泛濫成災(zāi)的年代,人們完全有理由舍不得輕易透露Email地址。2011-04-04.Net 項(xiàng)目代碼風(fēng)格要求小結(jié)
代碼風(fēng)格沒有正確與否,重要的是整齊劃一,這是我擬的一份《.Net 項(xiàng)目代碼風(fēng)格要求》,供大家參考2015-12-12ASP.NET Core使用HttpClient調(diào)用WebService
這篇文章介紹了ASP.NET Core使用HttpClient調(diào)用WebService的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03asp.net兩級聯(lián)動(dòng)(包含添加和修改)
兩級聯(lián)動(dòng)實(shí)現(xiàn)代碼2009-01-01asp.net 通用的連接數(shù)據(jù)庫實(shí)例代碼
數(shù)據(jù)庫連接是所有程序開發(fā)是會用到的,只是不同程序與數(shù)據(jù)庫連接的方法不一樣,下面我來介紹asp.net中數(shù)據(jù)庫連接代碼,有需要的朋友可以參考一下2013-08-08