页面上一共也就放了三个FileUpload 控件 用于上传图片
  没长图片控制最大是2M  一起可上传3张图片   以前好好的 没啥问题! 
     今天开始冒出一个奇怪的问题了  
     一共三个FileUpload   如果上传3张图片的话 前提(每张2M内)点击提交按钮 就无法显示网页 
  拿到本地调式   打个断点都不进入断点的  很是郁闷  如果只上传2张或者1张的话 就没问题(这三张图片大小分别为1.570MB、1.411MB、1.536MB)一起都上传的话 就无法显示网页了 调式 连断点都不进入的  真郁闷了。
  后来又拿了一张 599KB的图片和其中两张以前上传就没问题 初步判断  是三张图片一起上传太大了导致的问题?

       我觉得是这个问题   下面把代码贴出来  请高手 如何修改下代码 以防止这问题System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
            System.Text.StringBuilder strmsg = new System.Text.StringBuilder("");
            string dirpath = "";//物理路径
            int ifile;
            for (ifile = 0; ifile < files.Count; ifile++)
            {
                if (files[ifile].FileName.Length > 0)
                {
                    System.Web.HttpPostedFile postedfile = files[ifile];
                    //获取上传文件的大小(以字节为单位)
                    if (postedfile.ContentLength / 2048 >= 2048)//单个文件不能大于2048k
                    {
                        strmsg.Append(Path.GetFileName(postedfile.FileName) + "---不能大于2048k,图片提交失败<br>");
                        MESSAGE = strmsg.ToString();
                        //lblMessage.Visible = true;
                        break;
                    }
                    string fex = Path.GetExtension(postedfile.FileName);//获取文件后缀
                    if (fex != ".jpg" && fex != ".JPG" && fex != ".gif" && fex != ".GIF")
                    {
                        strmsg.Append(Path.GetFileName(postedfile.FileName) + "---图片格式不对,只能是jpg或gif,图片提交失败<br>");
                        MESSAGE = strmsg.ToString();
                        //lblMessage.Visible = true;
                        break;
                    }
                }
            }
            if (strmsg.Length <= 0)//说明图片大小和格式都没问题
            {
                //====================================提交========================================
                //以下为创建图库目录
                //string dirpath = Server.MapPath("Photograph");//将虚拟路径映射到服务器上的物理路径。
                dirpath = "D:\\照片\\" + Lsdw + "\\" + Zgdw + "\\" + Locus + "";//物理路径
                if (Directory.Exists(dirpath) == false)//确定给定路径是否引用磁盘上的现有目录。
                {
                    Directory.CreateDirectory(dirpath);
                }
                Random ro = new Random();//随机数生成器
                int name = 1;
                for (int i = 0; i < files.Count; i++)
                {
                    System.Web.HttpPostedFile myFile = files[i];
                    string FileName = "";
                    string FileExtention = "";
                    FileName = System.IO.Path.GetFileName(myFile.FileName);//返回指定路径字符串的文件名和扩展名。
                    string stro = ro.Next(100, 100000000).ToString() + name.ToString();//产生一个随机数用于新命名的图片
                    string NewName = DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + stro;
                    if (FileName.Length > 0)//有文件才执行上传操作再保存到数据库
                    {
                        FileExtention = System.IO.Path.GetExtension(myFile.FileName);
                        string ppath = dirpath + @"\" + NewName + FileExtention;
                        myFile.SaveAs(ppath);//保存上载文件的内容。
                    }
                    name = name + 1;//用来重命名规则的变量
                }
            }
            return MESSAGE;我代码中写的是每张2MB  可是那三张 每张都没超过2MB啊   为啥换一张小一点的图片 再加上其中两张就没问题?

解决方案 »

  1.   

    1、先在服务里关闭 iis admin service 服务。
    2、找到 windows\system32\inetsrv\ 下的 metabase.xml 文件。
    3、用纯文本方式打开,找到 ASPMaxRequestEntityAllowed 把它修改为需要的值(可修改为10M即:10240000),默认为:204800,即:200K。
    4、存盘,然后重启 iis admin service 服务。
      

  2.   

    先谢了 我在本地测也是这样啊! 那三张图片一起上传就无法显示网页了 代码也跟踪不了
       问题是现在 我后面还有预览按钮  上传那三张图片后点击预览都无法显示网页了  其他的图片或者 比那三张稍微小点的就没问题  
    预览代码System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;//当前http请求获取当前上传文件的集合
                String p = "";
                    for (int i = 0; i < files.Count; i++)//循环文件集合
                    {
                        if (files[i].FileName.Length > 0)//上传的文件完整名称
                        {
                            System.Web.HttpPostedFile postedfile = files[i];//上传的单个文件
                            p += "<img src='" + files[i].FileName + "' style='width:100px;height:100px'>";//输出预览
                        }
                    }
                x.InnerHtml = p;
      

  3.   

    还有一个可能是网页超时了
    你把IIS脚本超时的时间设为99999试一下
      

  4.   

    应该不会吧! 我刚才想起来了  好像是config文件中最大默认值为4096K  我刚才算了下那三张图片的总大小 为
    4M以上    貌似config的问题了 我试试先 
      

  5.   

    <configuration>
    <system.web>
    <processModel memoryLimit="80"/>
    </system.web>
    </configuration><configuration>
    <system.web>
    <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
    </system.web>
    </configuration>
      

  6.   

    真是低级失误  忘记写   <httpRuntime maxRequestLength..../>了
      结贴给分