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ì)因用戶(hù)將大量文件傳遞到該服務(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)有足夠的自由線(xiàn)程來(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)存中加載,任何客戶(hù)端請(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)求的類(lèi)型決定了是否對(duì)內(nèi)容進(jìn)行緩存。
若要對(duì)響應(yīng)進(jìn)行緩存,必須滿(mǎn)足以下條件:
| |
| true | 指定啟用緩存。 | |
| false | 指定禁用緩存。 | |
| maxRequestLength | 指示 ASP.NET 支持的最大文件上載大小。該限制可用于防止因用戶(hù)將大量文件傳遞到該服務(wù)器而導(dǎo)致的拒絕服務(wù)攻擊。指定的大小以 KB 為單位。默認(rèn)值為 4096 KB (4 MB)。 | |
| minFreeLocalRequestFreeThreads | ASP.NET 保持的允許執(zhí)行新本地請(qǐng)求的自由線(xiàn)程的最小數(shù)目。該線(xiàn)程數(shù)目是為從本地主機(jī)傳入的請(qǐng)求而保留的,以防某些請(qǐng)求在其處理期間發(fā)出對(duì)本地主機(jī)的子請(qǐng)求。這避免了可能的因遞歸重新進(jìn)入 Web 服務(wù)器而導(dǎo)致的死鎖。 | |
| minFreeThreads | 允許執(zhí)行新請(qǐng)求的自由線(xiàn)程的最小數(shù)目。ASP.NET 為要求附加線(xiàn)程來(lái)完成其處理的請(qǐng)求使這些線(xiàn)程保持自由狀態(tài)。 | |
| useFullyQualifiedRedirectUrl | 指示客戶(hù)端重定向是否是完全限定的(采用 {HYPERLINK "http://server/path" } 格式,這是某些移動(dòng)控件所必需的),或者指示是否代之以將相對(duì)重定向發(fā)送到客戶(hù)端。 | |
| true | 指定客戶(hù)端重定向需要以完全限定的格式發(fā)送。這是通過(guò)自動(dòng)將不是完全限定的格式的所有重定向轉(zhuǎn)換為完全限定的格式來(lái)實(shí)現(xiàn)的。 | |
| false | 指定客戶(hù)端重定向不需要被自動(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)文章
DotNet OnPreRender(EventArgs e) 事件常用的方法
DotNet OnPreRender(EventArgs e) 事件常用的方法,需要的朋友可以參考下。2011-07-07
ASP.NET Core奇淫技巧之動(dòng)態(tài)WebApi的實(shí)現(xiàn)
這篇文章主要介紹了ASP.NET Core奇淫技巧之動(dòng)態(tài)WebApi的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Visual Stduio 2010開(kāi)發(fā)環(huán)境搭建教程
這篇文章主要為大家詳細(xì)介紹了Visual Stduio 2010開(kāi)發(fā)環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
ASP.NET.4.5.1+MVC5.0設(shè)置系統(tǒng)角色與權(quán)限(二)
這篇文章主要介紹了使用ASP.NET.4.5.1+MVC5.0構(gòu)建項(xiàng)目中設(shè)置系統(tǒng)角色的全部過(guò)程,十分的詳細(xì),附上全部源碼,推薦給想學(xué)習(xí).net+mvc的小伙伴們2015-01-01
Datatable刪除行的Delete和Remove方法的區(qū)別介紹
Datatable刪除行的Delete和Remove方法的區(qū)別介紹,需要的朋友可以參考一下2013-03-03
asp.net core調(diào)用wps實(shí)現(xiàn)word轉(zhuǎn)pdf的過(guò)程
這篇文章主要介紹了asp.net core調(diào)用wps實(shí)現(xiàn)word轉(zhuǎn)pdf的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-08-08
.Net?Core?3.1?Web?API基礎(chǔ)知識(shí)詳解(收藏)
這篇文章主要介紹了.Net?Core?3.1?Web?API基礎(chǔ)知識(shí),本文內(nèi)容篇幅有點(diǎn)長(zhǎng),大家耐心閱讀,此文結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2022-04-04

