小弟在可开发.net framework 2.0 asp.net网站时,遇到了微软net 2.0 的925248号bug(http://support.microsoft.com/kb/925248/),在微软发布的.net 2.0 sp1 说明表示已修复此bug(http://support.microsoft.com/kb/945757/zh-cn),但是,我在安装此sp1后,问题依旧。而且使用vs2008+ .net 3.5  的情况下,此bug依然存在。
具体的bug是:
解决asp.net上传大文件性能,自定义HTTPModel:
        private void Application_BeginRequest(Object source, EventArgs e)
        {
            HttpApplication app = source as HttpApplication;
            IServiceProvider provider = (IServiceProvider)HttpContext.Current;            HttpWorkerRequest _workrequest = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
            if (app.Request.ContentType.Contains("multipart/form-data"))
            {
                int _totallength = int.Parse(_workrequest.GetKnownRequestHeader(HttpWorkerRequest.HeaderContentLength));
                int _readedindex = 0;
                byte[] _buffer = new byte[_totallength];                while (_workrequest.IsClientConnected() && !_workrequest.IsEntireEntityBodyIsPreloaded())
                {
                    byte[] tempBuff = _workrequest.GetPreloadedEntityBody();
                    int _readedlength = _workrequest.GetPreloadedEntityBodyLength();
            在实际文件大于49152时,_workrequest.GetPreloadedEntityBody()将只能获取49152个字节的数据,而_workrequest.GetPreloadedEntityBodyLength()将一直返回49152。不知大家谁知道是哪里出错了,是什么原因,不知道大家谁遇到类型相同情况,谢谢。
      

解决方案 »

  1.   

    在你的web.config加入一个节点,该节点表示最大接受字节,节点啥名字偶忘了,搜搜吧
      

  2.   

    web.config设置问题
    <system.web>
    <httpRuntime maxRequestLength="2097151" executionTimeout="900"/>
    </system.web>
      

  3.   

    谢谢isline和hy_lihuan,但是两位的回答似乎解决不了这个问题,呵呵,谢谢了。