在几个不同的 Windows Server 2016 安装上将SQL Server 2016 SP2 CU1(SP2 已应用)应用于 SQL Server 2016 后,我们注意到数据库邮件停止工作。邮件正在排队但未发送,我们在服务器上找不到任何错误消息,无论是在 SQL Server 日志中还是在 Windows Server 事件日志中。
在确认数据库邮件的所有设置都没有改变并且关于邮件中继服务器和其他外部因素的一切都应该是这样之后,我们可以看到一个老问题似乎又出现了:
DatabaseMail.exe的DatabaseMail.exe.config配置文件允许它在没有安装 .NET Framework 3.5 的情况下工作,已被 SQL Server 2016 SP2 CU1 更新删除。
在应用了补丁的所有实例上,SQL Server 安装的二进制目录中都缺少上面的配置文件。它在应用补丁之前就已经存在。
示例配置文件路径: C:\Program Files\Microsoft SQL Server\MSSQL13。instance_name \MSSQL\Binn\DatabaseMail.exe.config
问题的主要目的是检查其他人是否有同样的问题,并帮助传播有关 SQL Server 2016 SP2 CU1 补丁问题的信息。由于已经达到了这些目标并且帖子中提供了解决方案,因此我将按照回答关闭此问题。
解决方案如下:
我们根据以下知识库文章重新创建了该文件:https: //support.microsoft.com/en-us/help/3186435/fix-sql-server-2016-database-mail-does-not-work-on-a -计算机那-doe
之后我们必须重新启动数据库邮件队列以开始处理排队的邮件:
这清除了问题,任何排队的消息都已成功发送。
补丁链接: https: //support.microsoft.com/en-us/help/4135048/cumulative-update-1-for-sql-server-2016-sp2