Как получить список отчетов, доступных в экземпляре служб отчетов

Я пытаюсь перечислить в С# отчеты для пользователя в службах отчетов.

Как мне это сделать? Есть ли вызов веб-сервисов, который я должен использовать, или мне нужно просто вернуть html из http://localhost/ReportServer/lists.asmx и отключить это?

Второй вариант звучит как взломанный. Конечно, лучший способ?

Ответ 1

SSRS имеет полный SOAP API, вы можете увидеть информацию об этом здесь: http://technet.microsoft.com/en-us/library/ms155376.aspx

Из приведенной выше статьи:

   // Create a Web service proxy object and set credentials
   ReportingService2005 rs = new ReportingService2005();
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials;

   // Return a list of catalog items in the report server database
   CatalogItem[] items = rs.ListChildren("/", true);

   // For each report, display the path of the report in a Listbox
   foreach(CatalogItem ci in items)
   {
      if (ci.Type == ItemTypeEnum.Report)
         catalogListBox.Items.Add(ci.Path);
   }

Там также есть полный учебник: http://technet.microsoft.com/en-us/library/ms169926.aspx