今天突然遇到一个很郁闷的问题,本来想贴图的,不知道为什么,CSDN 上传的图总是变得扭曲、走形的很厉害,乱七八糟的,所以无奈只得文字描述。1. 我有一个 page,里面有一个 <input type="file" id="BrowseFile"> 的 html 控件,点击该控件,选择本地的一个 zip 或者 cab 文件。
2. 点击 Add 按钮(服务器端),server 端会将这个 BrowseFile.PostedFile 转成 byte[],放入 Session。然后在 listbox 里面显示所添加的文件名。问题是:我现在点 file 控件,选择的文件只要是大于 1M 的,没精确算过,大致只要是 2M 以上;然后点击 Add 按钮就没有反应了,页面就卡死了!连断点都进不去,IE Tab页上的一个小圈圈就在转啊转啊转的。更奇怪的是,我在 Add 按钮的 Click 事件入口处设置断点,选择的文件大小只要是 2M+ 的,点击该按钮断点都进不去!但是当我按 Esc,让页面停止刷新,居然又跑到 Click 事件入口处的断点了。这是怎么回事啊?太奇怪了,郁闷死了,弄到现在,我实在是想不出招了呀,现在已经凌晨 1 点多了,没办法,要睡觉了,所以到 CSDN 上求助。

解决方案 »

  1.   

    http://www.google.com.hk/search?q=asp.net+maxRequestLength&hl=zh-CN&safe=strict&prmd=ivns&source=lnt&tbs=lr:lang_1zh-CN|lang_1zh-TW&lr=lang_zh-CN|lang_zh-TW&sa=X&ei=R1TVTZTTMYbsuAOzz62dDA&ved=0CAcQpwUoAQ
      

  2.   

    2M放进Session?ASP.NET里面,上传最大的文件,可能在225M以下,再大,如何修改都不行. 
    默认的上传大小是4M. 
    如果需要上传更大的文件,必须采用其他方法.比如FTP,或者是其他组件比如ASPUPLOAD对于asp.net,默认只允许上传2M文件,增加如下配置,一般可以自定义最大文件大小.   
    <httpRuntime   
    executionTimeout= "300 "   
    maxRequestLength= "40960 "   
    useFullyQualifiedRedirectUrl= "false "/>   解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody   和   ReadEntityBody方法从IIS为ASP.NET建立的 pipe里分块读取数据   IServiceProvider   provider   =   (IServiceProvider)   HttpContext.Current;   HttpWorkerRequest   wr   =   (HttpWorkerRequest)   provider.GetService(typeof(HttpWorkerRequest));   
    byte[]   bs   =   wr.GetPreloadedEntityBody();   
    ....   
    if   (!wr.IsEntireEntityBodyIsPreloaded())   
    {   
    int   n   =   1024;   
    byte[]   bs2   =   new   byte[n];   
    while   (wr.ReadEntityBody(bs2,n)   > 0)   
    {   
    .....   
    }   
    }   上传
      

  3.   

    谢谢大家的帮忙!非常感谢,我现在问题解决了,我用的方法就是kid_wang所说的:<location path="SupportFiles/SuppFilesBulkUpload.aspx">
    <system.web>
    <httpRuntime maxRequestLength="40960" executionTimeout="300" useFullyQualifiedRedirectUrl="false"/>
    </system.web>
    </location>
    但是,我有一个问题不是很明白,想请教一下,useFullyQualifiedRedirectUrl 这个参数是什么含义?我google 了一下,是这样解释:“指示客户端重定向是否是完全限定的(采用 { HYPERLINK "http://server/path " } 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。”Hmm......这句话不太明白。这个值默认值是不是 false?谢谢。
      

  4.   

    如果完全限定客户端重定向,则为 true;否则为 false。默认值为 false。值为 false 时,某些浏览器在无 Cookie 会话中加载页面时可能会出现问题。