<System.Web>
<httpRuntime maxRequestLength="10240" />
</System.Web>
但是,只要 POST 請求的內容(例如上傳檔案)超過 Web.config 的 maxRequestLength 設定,用戶端就會收到以下的錯誤訊息:「無法顯示網頁:找不到伺服器或 DNS 錯誤」。如果你試圖要在 Page 層級處理這個錯誤將會徒勞無功,因為這是屬於 Application 層級的錯誤,也就是 ASP.NET 早在執行你的網頁程式碼之前,就已經拋出「超出最大的要求長度」的例外。比較好的處理方式是在 Global.asax 加入 Application_BeginRequest 事件處理常式,在檔案未上傳前,先檢查 HTTP 標頭內容的長度,如果超過 maxRequestLength 的設定値,便將用戶端重新導向導引到自訂的錯誤頁面。以下是在 Global.asax 檔案中建立錯誤處理程序的程式碼:
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server">
void Application_BeginRequest(object sender, EventArgs e)
{
HttpRuntimeSection section = (HttpRuntimeSection)ConfigurationManager.GetSection("system.web/httpRuntime");
int maxFileSize = section.MaxRequestLength*1024;
if (Request.ContentLength > maxFileSize)
{
Response.Redirect("~/FileTooLarge.aspx");
}
}
</script>
剛好要處理這個問題
感謝...
匿名
2008年7月1日 下午1:17感謝...鳳凰和麗江時間的灰燼楊柳岸曉風殘月憂傷的旋律
匿名
2009年5月7日 上午11:04maxRequestLength的單位應為Byte
匿名
2013年10月1日 上午11:54樓上2013/10的匿名回覆有誤!
maxRequestLength單位為KB沒錯, IIS 7.0 上多了一個 maxAllowedContentLength 屬性,其他單位才為Byte,若是用IIS7.0則後者也要設定,假如你超過預設值30000000 Bytes (~28.6 MB)的話!!!
匿名
2014年5月11日 下午6:22