无法使用 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();
}
}
它具有上传文件的默认限制,请参阅此链接以解决此问题
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 服务器的问题 - 请尝试检查设置。