Delivery Extensions Overview

SQL Server Reporting Services enables users to create and publish reports that, once created and published, can be delivered to various locations. In addition, Reporting Services includes several delivery extensions and a delivery API that enable developers to create additional delivery extensions to further extend the functionality of delivery in Reporting Services.

The following table lists the delivery extensions included with Reporting Services.

Delivery extension


Report Server E-Mail

Uses an SMTP server to e-mail reports to individual users or groups.

Report Server File Share

Used to distribute reports within your organization to network file shares. Provides the ability to automatically copy a report to a file share on a designated schedule.

Reporting Services delivery extension architecture

Reporting Services delivery extension architecture

Delivery extensions are paired with subscriptions. When creating a subscription, a user can choose one of the available delivery extensions to determine how the report is delivered. In Reporting Services, subscriptions are located in the report server database. When an event occurs, Reporting Services matches the event against subscriptions contained in the report server database. For each subscription tied to the event, the report server creates a notification. For data-driven subscriptions, a notification is created for each recipient. Once a notification is created, the report server invokes a particular delivery extension and passes in values for the extensions settings specified in the notification. The delivery extension sends the notification to the user as specified by the selected delivery extension.

Delivery extensions implement the Reporting Services delivery extension API. By supporting the Reporting Services delivery extension API, delivery extensions are able to receive notifications from the report server and provide status of the notification.

The report server does not manage delivery destinations for notifications and reports. Gathering destination information is accomplished through the code you write in your delivery extension.

Subscriptions and Delivery Extensions

Client applications create subscriptions that use delivery extensions using two methods of the Report Server Web service: CreateSubscription and CreateDataDrivenSubscription. For modifying subscriptions that already exist, the SetSubscriptionProperties and SetDataDrivenSubscriptionProperties methods are used. When creating a subscription, the user also selects a delivery extension for the subscription and enters values for the required extension settings. When a user saves a subscription, it is stored in the report server database. Subscriptions create notifications based on a schedule or an event. When a delivery begins, the selected delivery extension first loads any configuration data from the configuration file. Next, the extension settings for the subscription are retrieved, and values are set. Finally, the Deliver method is called, and the notification is sent.

Developer Requirements

Developing a Reporting Services delivery extension requires you to have:

  • A deployment computer with a report server installed.

  • A development computer with Visual Studio 2008 or the Microsoft .NET Framework Software Development Kit (SDK) installed.

  • An in-depth understanding of Reporting Services features and capabilities, specifically subscription and delivery.

  • An in-depth understanding of ASP.NET and Web controls if you are planning to implement your own subscription user interface for Report Manager.

  • Development experience in a .NET Framework language such as Microsoft Visual C# or Microsoft Visual Basic .NET.