SSRS 2008报告订阅电子邮件随机接收传递扩展加载错误

时间:2011-08-23 19:17:10

标签: sql-server email reporting-services ssrs-2008 subscription

我创建了3个报告,并为每个报告设置了每个订阅,每个报告都通过电子邮件发送给收件人列表。

当我查看“我的订阅”时,我看到消息“无法加载此订阅的传递扩展”,有时甚至会说它已成功通过电子邮件发送给收件人。

有些报告会被发送,但随机发送的是哪些报告。

这不是SSRS2008R2,它是SSRS2008

我已确保所有电子邮件地址都不是别名 我已确保SMTP服务器允许来自报表服务器的中继 我已确保所有电子邮件地址仍处于活动状态 我没有在日志中看到错误。

有什么想法吗?

谢谢,

2 个答案:

答案 0 :(得分:4)

这个问题很老了,但是SQL Server 2014今天仍然会出现错误消息,并且在编写错误消息的排名最高的搜索结果时并不是特别有用,它们也不包含任何解释为什么错误会不一致。

以下是解决此问题的步骤:

1)确认SSRS实例的电子邮件传递已启用(即,查看Reporting Services配置管理器的“电子邮件设置”部分。

请注意,如果您有横向扩展配置,则需要在加入横向扩展配置的每个实例上启用电子邮件递送,即使客户端未访问实例也是如此。即使您没有设置任何类型的网络级负载平衡,订阅事件的任务也将在横向扩展配置中的实例之间得到平衡。我不确定平衡如何工作的具体细节,但this post on blogs.msdn.com提供了有关如何在SSRS中处理事件的一些细节:

  

当订阅运行时会发生以下几件事:

  • SQL Server代理作业触发并在RS目录的Event表中放入一行,其中包含处理订阅所需的设置

  • RS服务器服务的线程数量有限(每个CPU 2个),每隔几秒轮询一次Event表,寻找要处理的订阅

  • 当它找到一个事件时,它会在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&amp;之后仍然卡住了2,在订阅运行时,使用Sysinternals的Process Explorer监视文件系统和网络访问可能是值得的。电子邮件传递扩展DLL似乎是C:\Program Files\Microsoft SQL Server\MSRS??.<instance name>\Reporting Services\ReportManager\Bin\ReportingServicesEmailDeliveryProvider.dll,错误消息可能暗示无法加载此文件。我相信这个文件在加载时会被复制到RSTempFiles目录。

如果您正在运行防病毒软件,那么您可能希望遵循Microsoft的指南here来获取特定于SSRS的排除项:

  

文件和目录排除

  • 保存Reporting Services临时文件和日志(RSTempFiles和LogFiles)的目录
  

流程排除

  • %ProgramFiles%\ Microsoft SQL Server \ MSRS ??。\ Reporting Services \ ReportServer \ Bin \ ReportingServicesService.exe

在我调查此问题的情况下,这是由横向扩展配置中的DR服务器未配置为电子邮件传递引起的。 DR服务器大约1/3时间处理订阅事件,因此错误是间歇性发生的。我最初没有看到DR服务器,因为没有客户端访问它。

答案 1 :(得分:1)

找到文件rsreportserver.config(报表服务器安装中的文件)注释掉该行:

> <Extension Name="Report Server DocumentLibrary"
> Type="Microsoft.ReportingServices.SharePoint.SharePointDeliveryExtension.DocumentLibraryProvider,ReportingServicesSharePointDeliveryExtension">
>     <MaxRetries>3</MaxRetries>
>     <SecondsBeforeRetry>900</SecondsBeforeRetry>
>     <Configuration>
>      <DocumentLibraryConfiguration>
>       <ExcludedRenderFormats>
>        <RenderingExtension>HTMLOWC</RenderingExtension>
>        <RenderingExtension>NULL</RenderingExtension>
>        <RenderingExtension>RGDI</RenderingExtension>
>       </ExcludedRenderFormats>
>      </DocumentLibraryConfiguration>
>     </Configuration>    </Extension>

将其包装在<!-- -->中。重新启动/重新启动报告服务器服务。如果存在任何特定的订阅错误,此错误应该消失并报告任何特定的订阅错误。

祝你好运。