Я не уверен, что это ответ, но давайте назовем его вспомогательным материалом.
У меня есть этот пример кода из msdn, который показывает, как вы можете сделать это, создав клиент службы и вызвав данный отчет в формате PDF и сохранив его в файловом потоке.
http://msdn.microsoft.com/en-us/library/reportexecution2005.reportexecutionservice.render.aspx
Проблема, с которой я сталкиваюсь в настоящее время, заключается в том, чтобы найти правильный клиентский объект для взаимодействия после указания VS на службу SSRS. Объект, который я использую для взаимодействия со службой:
ReportExecutionServiceSoapClient rs = new ReportExecutionServiceSoapClient();
Однако интерфейс не соответствует моему примеру кода. Так что это немного ближе, но не ответ.
ОБНОВЛЕНИЕ: правильный генератор класса Proxy
Вот ссылка на то, как правильно создать прокси. Вам понадобится Windows SDK установлен (текущий 7.1). Вы можете найти это на microsoft.com, как и я. Выполните командную строку, и она сгенерирует файл для вас. Включить в проект:
http://msdn.microsoft.com/en-us/library/ms155134%28v=SQL.110%29.aspx
ОБНОВЛЕНИЕ: Работает
Мне просто нужно было создать правильный прокси. Итак, для SSRS 2010, очевидно, они разделили выполнение и управление отчетами на две службы. Единственное, что мне было нужно для генерации отчета из консольного приложения C #, - это служба выполнения. Может быть, это совершенно очевидно для всех, кроме меня :)?
Хорошо, так что откройте командную оболочку Windows SDK и поместите в нее этот материал для службы выполнения:
wsdl /language:CS /n:"Microsoft.SqlServer.ReportExecution" http://<Server Name>/reportserver/reportexecution2010.asmx?wsdl /o:"ReportExecution.cs"
Перейдите в C: \ Program Files \ Microsoft SDKs \ Windows \ v7.1 и выберите файл ReportExecution.cs. Скопируйте и вставьте его в свой проект.
Тогда вам просто нужно сказать это:
Microsoft.SqlServer.ReportExecution.ReportExecutionService rsExec =
new Microsoft.SqlServer.ReportExecution.ReportExecutionService();
rsExec.Credentials = System.Net.CredentialCache.DefaultCredentials;
rsExec.Url = @"http://<ServerName>/reportserver/ReportExecution2005.asmx";
Следуйте примеру из этой ссылки , которая аналогична приведенной выше, и вы должны генерировать довольно удивительные отчеты из вашего удобного приложения на C #.