大家好。我们正在使用 IIS6 SMTP 服务发送相当多的电子邮件(大约 23k),并且每次都会收到大约 7-8 条错误消息。堆栈跟踪是:
System.Net.Mail.SmtpException: Exceeded storage allocation. The server response was: 4.3.1 Session size exceeds fixed maximum session size
at System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)
at System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)
at System.Net.Mail.SmtpConnection.OnClose(Object sender, EventArgs args)
at System.Net.ClosableStream.Close()
at System.Net.Mail.MailWriter.Close()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
我们的 SMTP 配置是:
Limit message size: 2048k
Limit session size: 20240k
Limit # of messages per connection: 20
Limit # of recipients per message: 100
是否只是调整 session 大小那么简单?如果是这样,推荐什么?我们应该取消选中限制 session 大小吗?
我并不自称是 SMTP 设置方面的专家,但如果我能消除这些错误消息,那似乎是向前迈进了一步。
谢谢
吉姆
最佳答案
吉姆,这似乎是存储所有要发送的临时队列文件的磁盘空间不足。这就是为什么您只看到错误几次的原因。当它发送消息时,我确定它会清理临时文件,为更多文件腾出空间。请记住,您可以比 SMTP 服务器将电子邮件发送到世界的速度快很多很多倍,因此,您可以创建一个 hell 般的队列。
失败的交付也无济于事......
我会查看一个配置选项,该选项设置允许用于临时文件的驱动器空间的限制。
session 限制可能仅适用于与您的 SMTP 服务器的连接,并且只允许在 SMTP 服务器说“哇,伙计......”之前将这么多数据泵入您的 SMTP 服务器。
关于c# - IIS SMTP : Exceeded storage allocation response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/305837/