应用 SQL Server 2016 SP2 CU1 后缺少 DatabaseMail.exe.config

Jon*_*son 5 sql-server-2016 patching

在几个不同的 Windows Server 2016 安装上将SQL Server 2016 SP2 CU1(SP2 已经应用)应用于 SQL Server 2016 后,我们注意到数据库邮件停止工作。邮件正在排队但没有发送,我们在服务器上找不到任何错误消息,无论是在 SQL Server 日志中,还是在 Windows Server 事件日志中。

在确认数据库邮件的所有设置都没有改变并且邮件中继服务器和其他外部因素方面一切正常后,我们可以看到一个老问题似乎重新浮出水面:

SQL Server 2016 SP2 CU1 更新删除了DatabaseMail.exeDatabaseMail.exe.config配置文件,允许它在没有安装 .NET Framework 3.5 的情况下工作。

在应用了补丁的所有实例上,SQL Server 安装的二进制目录中都缺少上述配置文件。它在应用补丁之前就存在。

示例配置文件路径: C:\Program Files\Microsoft SQL Server\MSSQL13。instance_name \MSSQL\Binn\DatabaseMail.exe.config

Jon*_*son 3

该问题的主要目的是检查其他人是否也遇到同样的问题,并帮助传播有关 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

之后,我们必须重新启动数据库邮件队列才能开始处理排队的邮件:

USE msdb;
EXEC sysmail_stop_sp;
EXEC sysmail_start_sp;
Run Code Online (Sandbox Code Playgroud)

这解决了问题,所有排队的消息均已成功发送。

补丁链接:https://support.microsoft.com/en-us/help/4135048/cumulative-update-1-for-sql-server-2016-sp2