我刚刚将一个网站从具有 IIS6 的 Windows 2003 服务器“升级”到了一个重新构建为 .NET 4.5 的 IIS7 的 Windows 2012 服务器。
代码不变。它使用System.Net.Mail.MailMessage
并连接到远程服务器以通过该服务器的 SMTP 发送。因为它发送到远程服务器,所以本地 SMTP 服务与两台机器的防火墙无关(我在禁用两台防火墙的情况下尝试过)。
问题是 Web 应用程序不再发送电子邮件。当发送电子邮件的页面被提交时,回发需要几分钟(在它或多或少是即时的之前),并且该MailMessage.Send()
方法不会返回错误。就好像电子邮件已经发送了,尽管速度很慢,但它没有发送,因为它永远不会到达。
我怀疑 IIS7 设置或 .NET 3.5 和 4.5 之间的差异。
有人有想法么?