专干老熟女a片,日韩毛片免费无码无毒视频观看,日韩中文字幕免费视频,解开老师裙子猛烈进入动漫

IT技術

ASP.NET文件上傳大小的限制解決方案
作者:
來源: 本站
發布日期: 2017/7/27 15:37:07
點擊量: 6649次
【 字體:
背景顏色:

我們大家都知道ASP.NET為我們提供了文件上傳服務器控件FileUpload,默認情況下可上傳的最大文件為4M,如果要改變可上傳文件大小限制,那么我們可以在web.config中的httpRuntime元素中添加maxRequestLength屬性設置大小,同時為了支持大文件上傳超時可以添加executionTimeout屬性設置超時時間。網上有很多這樣的例子,但實際情況是否是這樣嗎?

 
<httpRuntime maxRequestLength="" executionTimeout=""/>
 
測試環境
 
IIS 7.5、.NET 3.5 sp1
 
測試頁面UploadFile.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UploadFile.aspx.cs" Inherits="UploadFile" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>
</html>
測試頁面UploadFile.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class UploadFile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (FileUpload1.FileContent != null)
        {
            FileUpload1.SaveAs(Server.MapPath("/Files/"+FileUpload1.FileName));
        }
    }
}
實際測試
 
1.上傳小于4M的文件
 
選擇2.7M的pdf文件上傳

上傳提示成功

 2. 上傳大于4M的文件

 選擇上傳4.3M的pdf文件
 
 
上傳后報黃頁


3. 修改web.config文件,設置可上傳文件大小限制

 
修改web.config,增大可上傳文件的大小限制,增大執行時間限制
 
<httpRuntime maxRequestLength="2048000" executionTimeout="600"/>
 
 重新選擇剛才4.3M的pdf文件,重新上傳

上傳成功
 
4. 上傳大于30M的的文件
 
 碰到這個問題的實際環境是我們使用了第三方的上傳文件組件,通過js調用第三方的ActiveX控件上傳文件,修改web.config后上傳大于30M的文件的時候,報了如下錯誤

查看windows系統日志,可以看到如下的日志錯誤,看到異常信息,我們可以猜測到是請求超長,但是我們設置了最大請求長度了啊,而且遠遠要大于30M。靜下來想一想可能是IIS限制的,查詢相關的IIS資料,發現果然是這樣。
 
異常消息: 超過了最大請求長度。
在 System.Web.HttpRequest.GetEntireRawContent()
   在 System.Web.HttpRequest.GetMultipartContent()
   在 System.Web.HttpRequest.FillInFormCollection()
   在 System.Web.HttpRequest.EnsureForm()
   在 System.Web.HttpRequest.get_HasForm()
   在 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   在 System.Web.UI.Page.DeterminePostBackMode()
   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
 
5. 修改IIS的配置
 
選中自己的站點,并雙擊“請求篩選”

選擇右側的”編輯功能限制”

在彈出的頁面中,我們看到默認請求限制正是30M

修改請求大小限制為合適的值即可,保存后重啟站點即可。
                         
 
總結
 
1. Asp.NET作為微軟的Web服務框架,其定義了web請求的大小限制和執行時間限制。同時其為上傳文件提供了基礎的框架,并為我們提供了UploadFile服務器控件,其最終也是通過Http將文件數據傳輸到服務器端,自然也受請求大小和執行時間的限制,只是一般的請求都打不到這個極限,往往是上傳文件的時候才會觸及這個閥值。
 
2. IIS作為windows平臺上承載ASP.NET的法定服務器,按照正常邏輯來說,其也能統一設置發送到自己這里請求的大小限制。同時由于IIS只將針對特定類型的文件的請求路由到ASP.NET進行處理,像js、css和圖片等請求是不受ASP.NET中請求大小的限制的,這也從一個側面說明有必要再IIS中添加控制。
 
3. 請求的長度校驗只有先通過IIS的限制后,才有可能路由到ASP.NET,只有最終通過ASP.NET的長度限制校驗,才能正常的進行后續的管道處理步驟。
掃一掃在手機打開當前頁

Contact

聯系我們

告訴我們您想要的吧!我們為當地客戶提供專業、及時的服務
地址:云南省昆明市白云路368號
電話:400-871-8716 (工作時間:09:00-18:00(周一至周五))
何總:23592693
李總:53815112
主站蜘蛛池模板: 永仁县| 井冈山市| 临朐县| 印江| 葵青区| 望谟县| 平顶山市| 宝清县| 灵寿县| 镇远县| 衢州市| 娱乐| 南乐县| 荥经县| 巴林右旗| 西林县| 龙江县| 昌邑市| 五寨县| 邵阳县| 藁城市| 建瓯市| 盐池县| 徐汇区| 东兰县| 南宫市| 永定县| 菏泽市| 遵义市| 遵化市| 沧源| 梅河口市| 甘谷县| 台东市| 平顺县| 太湖县| 灵川县| 田东县| 潜江市| 封开县| 五原县|