//加密压缩文件
            process1.StartInfo.Arguments = " a -p123999 " + rarPath + " " + filePath;
            process1.Start();
            Thread.Sleep(1000); //等待压缩结束
            msg.Attachments.Add(new System.Net.Mail.Attachment(@"e:\File01.rar"));红色部分改成 process1.waitforexit();

解决方案 »

  1.   

    Thread.Sleep(1000); //等待压缩结束 
    修改为process1.waitforexit(); 1M以下的文件很快就发送成功;
    3M左右的发送时,最后提示时间超时。
      

  2.   

    你是启动了WinRar进程来压缩附件,而Winrar进程和aspnet进程是并行的。如果你的附件很大,则需要一定的时间来完成压缩,而在WINRAR压缩的同时,aspnet进程也在执行,所以会的提示“由另一进程使用,因此该进程无法访问该文件",如果你等待Winrar进程结束,则会造成iis等待超时。
      

  3.   

    那你修改iis的超时设置,
    好象是web.config的system.web下加一句:
    <httpRuntime executionTimeout="3000" />
      

  4.   

    在WinForm环境下写的代码,
    还要设置IIS么?
      

  5.   

    楼主的这个好像是winform的吧
      

  6.   

    实在不好解决就用两个Button,
    一个用来压缩,一个用来发送
      

  7.   

    建议楼主先去掉winrar压缩功能,支持发送大于3M的rar文件,看看有没有问题
    然后逐步的缩小范围,查看问题在哪里
      

  8.   

    不好意思,看错了。
    我想原因大概在于winrar是个图形程序,用process启动的话无法得到exit的信息,所以用process.waitforexit(); 是没用的。
    这样只能把延时时间加长一点了。或者你改用命令行的压缩程序(如pkzip)压缩,这样可以用process.waitforexit();
      

  9.   

            Process1.Start();   
            if (Process1.HasExited)
            {
                    int iExitCode = Process1.ExitCode;
                    if (iExitCode == 0)
                    {
                        这里发送邮件
                    }
                    else
                    {
                        出错
                    }
            }
      

  10.   

    刚刚试验了一下
    Process1.Start();//之后会调出winrar来压缩软件,但有执行时间
                while (true)
                {
                    if (Process1.HasExited)
                    {
                        int iExitCode = Process1.ExitCode;
                        MessageBox.Show(iExitCode.ToString());
                        break;
                    }
                }
      

  11.   

    临时申请两个邮箱用来测试---GMail邮箱
    用户名 [email protected]
    密码   1234qazwsx---163邮箱
    用户名 [email protected]
    密码   1234qazwsx
      

  12.   

    我把压缩和发送放在两个Button下,
    也是提示超时,小于1M的附件基本没问题