Ric*_*der 3 sql-server email subscription reporting-services ssrs-2008
我创建了3个报告,并为它们设置了每日订阅,每个订阅都通过电子邮件发送给收件人列表。
当我查看“我的订阅”时,看到消息“无法加载此订阅的传递扩展名”,有时甚至会说已成功将其通过电子邮件发送给收件人。
一些报告被发送,但是我得到的是随机的。
这不是SSRS2008R2,而是SSRS2008
我已确保所有电子邮件地址都不是别名我已确保SMTP服务器允许来自报表服务器的中继我已确保所有电子邮件地址仍处于活动状态,但未在日志中看到错误。
有任何想法吗?
谢谢,
这个问题已经很老了,但是错误消息今天仍然可以在SQL Server 2014中出现,并且在为错误消息编写排名最高的搜索结果时不是特别有用,也不包含有关错误原因的任何解释。会不一致地发生。
这是我要解决此问题的步骤:
1)确认已为SSRS实例启用电子邮件传递(即查看Reporting Services配置管理器的“电子邮件设置”部分)。
请注意,如果您具有横向扩展配置,则即使加入了横向扩展配置的每个实例都需要启用电子邮件传递,即使客户端未访问实例也是如此。即使没有设置任何类型的网络级负载平衡,订阅事件的任务也会在横向扩展配置中的各个实例之间达到平衡。我不确定如何平衡的确切细节,但是blogs.msdn.com上的这篇文章提供了有关如何在SSRS中处理事件的一些细节:
订阅运行时,会发生几件事:
SQL Server代理作业将触发,并在RS目录的“事件”表中放置一行,其中包含处理订阅所需的设置
RS服务器服务具有数量有限的线程(每个CPU 2个),每隔几秒钟轮询一次事件表,以查找要处理的订阅
找到事件后,它将在Notifications表中放入一行并开始处理订阅,包括执行数据驱动的订阅查询(如果存在),处理报告,将其呈现为指定格式(HTML,PDF,Excel等) ),然后将最终结果发送到电子邮件地址或文件共享。请注意,ExecutionLog表中还将有一行用于执行报告。
2)查看SSRS错误日志(通常在中C:\Program Files\Microsoft SQL Server\MSRS??.<instance name>\Reporting Services\LogFiles)。如果您正在运行向外扩展配置,则需要在向外扩展配置中的每个实例上执行此操作。只有处理订阅事件失败的实例才会记录错误。
顺便说一句,如果在订阅触发时对SSRS数据库运行SQL Server跟踪或扩展事件会话,则应该能够看到哪个SSRS实例正在处理订阅事件并失败。
3)如果在步骤1和步骤2之后仍然遇到问题,可能值得使用Sysinternals的Process Explorer在订阅运行时监视文件系统和网络访问。电子邮件传递扩展名DLL似乎是C:\Program Files\Microsoft SQL Server\MSRS??.<instance name>\Reporting Services\ReportManager\Bin\ReportingServicesEmailDeliveryProvider.dll,并且错误消息可能表示无法加载此文件。我相信此文件将RSTempFiles在加载时复制到目录中。
如果你正在运行防病毒软件,你可能会想追随微软的准则在这里为SSRS特定排除:
文件和目录排除
流程排除
在我正在调查此问题的情况下,这是由于横向扩展配置中的DR服务器未配置用于电子邮件传递而引起的。DR服务器大约在三分之一的时间内处理预订事件,因此该错误是间歇性发生的。起初我没有想到要查看DR服务器,因为没有客户端正在访问它。