简体   繁体   中英

SSRS 2008 Report Subscription Emails Randomly Receiving Delivery Extension Loading Errors

I have created 3 reports and have set up daily subscriptions for them to each be emailed to a list of recipients.

When I look at My Subscriptions, I see the message "The delivery extension for this subscription could not be loaded", and sometimes it even says that it was successfully emailed to the recipients.

Some of the reports get sent, but its random which ones I get.

This is not SSRS2008R2, it is SSRS2008

I have made sure that all of the email addresses are not aliases I have made sure that the SMTP server allows relays from the Report Server I have made sure that all of the email addresses are still active I dont see errors in the logs.

Any ideas?

Thanks,

The question is quite old, but the error message can still occur today in SQL Server 2014, and at the time of writing the highest-ranked search results for the error message are not particularly useful, nor do they contain any explanation of why the error would occur inconsistently.

Here are the steps I would follow to troubleshoot this problem:

1) Confirm email delivery is enabled for the SSRS instance (ie look at the 'Email Settings' section of Reporting Services Configuration Manager.

Note that if you have a scale-out configuration, email delivery needs to be enabled on every instance joined to the scale-out configuration, even if the instances aren't accessed by clients. The tasks for the subscription events will get balanced across the instances in the scale-out configuration even if you don't have any type of network-level load balancing set up. I'm unsure of the exact details of how the balancing works, but this post on blogs.msdn.com provides some details about how events are processed in SSRS:

When the subscription runs several things happen:

  • The SQL Server Agent job fires and puts a row in the Event table in the RS catalog with the settings necessary to process the subscription

  • The RS server service has a limited number of threads (2 per CPU) that poll the Event table every few seconds looking for subscriptions to process

  • When it finds an event, it puts a row in the Notifications table and starts processing the subscription, which includes executing the data driven subscription query (if present), processing the report, rendering it to the specified format (HTML, PDF, Excel etc), and delivering the final result to either an email address or a file share. Note that there will also be a row in the ExecutionLog table for the report execution.

2) Look in the SSRS error logs (typically in C:\\Program Files\\Microsoft SQL Server\\MSRS??.<instance name>\\Reporting Services\\LogFiles ). If you're running a scale-out config, you'll need to do this on each instance in the scale-out config; an error will only get logged by the instance that's failing to handle the subscription event.

By the way, if you run a SQL Server trace or extended events session against the SSRS database while the subscription fires, you should be able to see which SSRS instance is processing the subscription event and failing.

3) If you're still stuck after steps 1 & 2, it might be worth using Process Explorer from Sysinternals to monitor filesystem and network access while the subscription runs. The email delivery extension DLL appears to be C:\\Program Files\\Microsoft SQL Server\\MSRS??.<instance name>\\Reporting Services\\ReportManager\\Bin\\ReportingServicesEmailDeliveryProvider.dll , and the error message could be implying that this file couldn't be loaded. I believe this file will get copied to the RSTempFiles directory when it is loaded.

If you're running antivirus software, you'll probably want to follow Microsoft's guidelines here for SSRS-specific exclusions:

File and Directory Exclusions

  • The directory that holds Reporting Services temporary files and Logs (RSTempFiles and LogFiles)

Process Exclusions

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

In the case I was looking into this the problem, it was caused by a DR server in the scale-out config not being configured for email delivery. The DR server was handling the subscription event roughly 1/3rd of the time, so the error was occurring intermittently. It didn't initially occur to me to look at the DR server as no clients were accessing it.

Find the file rsreportserver.config (file within your report server installation) comment out the line:

> <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>

By wrapping it in <!-- --> . Restart / reboot the reporting server servies. This error should go away and report any specific subscription errors if there are any.

Good luck.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM