无法使用 asp.net 3.5 中的文件上传上传大于 4 MB 的文件

本文关键字:文件 大于 MB asp net | 更新日期: 2023-09-27 18:32:00

我必须发送带有 attachments.my 代码的邮件仅适用于小于4MB的文件。我已经检查了网上的所有内容,但每个人都建议相同的舒缓。那就是在我已经完成的 webconfig 中更改 httpruntime 属性。

<httpRuntime maxRequestLength="10000" executionTimeout="1500"  />

我已经更改了 Web 配置中具有"超时"属性的所有内容。还在 IIS 中的应用程序配置中对 KeepAlive 进行了更改,但即使在完成所有这些更改后,问题仍然存在于我的应用程序中。每次我尝试上传大于 4mb 的文件时,连接超时正好在 1.5 分钟后。

点击事件中的代码

protected void btnSend_Click(object sender, EventArgs e)
        {
            MailMessage msg = new MailMessage();
            SmtpClient smtp = new SmtpClient();
            string strFrom = txtFrom.Text;
            string strTo = txtTo.Text;
            string strSubject= ddlTemplate.SelectedItem.Text.ToString();
            string strBody =txtBody.Text;
            string strCC =txtCC.Text;
            string strBCC =txtBCC.Text;
            if (this.fuAttachments.HasFile)
            {
                Attachment at = new Attachment(fuAttachments.PostedFile.InputStream,fuAttachments.PostedFile.ContentType);
                at.ContentDisposition.FileName = this.fuAttachments.FileName;
                msg.Attachments.Add(at);

            }
           smtp.EnableSsl = true;
            msg.From = new MailAddress(strFrom);
            msg.To.Add(strTo);
            msg.Subject = strSubject;
            msg.Body = strBody;
            //smtp = new SmtpClient("localhost");
            //smtp.UseDefaultCredentials = true;
            try 
            {
                smtp.Send(msg);
            }
            catch (SmtpException Ex)
            {
                throw;
            } 
            if (msg.Attachments.Count > 0)
            {
                //Clear the attachments and delete the sessionid folder from tempFiles 
                msg.Attachments.Dispose();
            }
        }

无法使用 asp.net 3.5 中的文件上传上传大于 4 MB 的文件

它具有上传文件的默认限制,请参阅此链接以解决此问题

http://frazsundal.blogspot.com/2011/02/request-filtering-module-is-configured.html

in your web.config

添加此行

<system.web>
   <httpRuntime maxRequestLength="10000" />
</system.web>

maxRequestLength="10000"使您的应用程序上传最大大小达到 10mb。

我在应用程序中找到了罪魁祸首。它是 smtp 客户端的超时属性,在大约 1.5 分钟后停止进程。此属性的默认值为 100 秒,我将其更改为 1500 秒(1500000 毫秒,因为此属性以毫秒为单位取值)并成功邮寄附件。

smtp.Timeout = 1500000;

有关详细信息,请参阅此处

顺便说一下,我用21MB的附件对其进行了测试。

尝试使用 httpRuntime 节点的 maxRequestLength。可能还需要更改执行超时。

这听起来类似于此问题 SmtpClient.Send 附件最大大小,因此可能是您的 SMTP 服务器的问题 - 请尝试检查设置。