Службы Reporting Services 2005: ReportExecution2005.asmx возвращается с 401 Доступ запрещен при вызове из RenderingExtension - PullRequest
0 голосов
/ 25 марта 2009

У меня есть модуль рендеринга для служб отчетов, который использует службу ReportExecution2005.asmx для выполнения ряда «подотчетов», а затем помещает результаты в представление PowerPoint.

Типичным сценарием использования является переход к диспетчеру отчетов, выберите мой отчет «Powerpoint», который используется только в качестве заполнителя для параметров, передаваемых в «подотчеты». Затем я выбираю свое расширение из списка форматов экспорта и нажимаю Экспорт, который запускает расширение и возвращает мне мой файл pptx.

Это прекрасно работает как на наших живых, так и на тестовых серверах. Но я столкнулся с очень странной проблемой, пытаясь настроить другой тестовый сервер.

Любой вызов, сделанный добавочным номером веб-службы, возвращается с «401 Отказано в доступе» (дополнительная информация о субстатусе отсутствует).

Вещи, которые я пытался без успеха: - разрешить всем физический доступ к структуре папок виртуального каталога ReportServer. И я имею в виду буквально всех - ASPNET, NETWORK SERVICE, Все, учетную запись, которую я обычно использую для входа в систему, которая является администратором и владельцем папки - использовать диспетчер отчетов для настройки безопасности на стороне служб отчетов. Опять же, каждая мыслимая учетная запись пользователя / группы, которая может быть задействована, получила каждую мыслимую роль. - разрешить анонимный доступ к веб-приложению ReportServer. - включено олицетворение в веб-приложении ReportServer. - жестко закодированные учетные данные пользователя для использования при вызове веб-службы (по умолчанию он просто использует System.Net.CredentialCache.DefaultCredentials)

Я также создал небольшой тестовый веб-сайт, который использует службу ReportExecution точно так же, как RenderingExtension, и с веб-сайта веб-сервер хорошо аутентифицируется и позволяет мне вызывать веб-службу, поэтому, очевидно, проблема лежат с самой настройкой безопасности веб-службы.

Начинаю вырывать мои волосы. В крайнем случае, я собираюсь переустановить службы Reporting Services, но в то же время (или если это не поможет) - если кто-то сталкивался с чем-то похожим, я был бы очень признателен за любой вклад.

1 Ответ

1 голос
/ 20 мая 2009

Я видел похожее поведение при миграции проекта ASP.NET, который вызывал веб-службу ReportExecution2005. При запуске на моей локальной коробке все было ок. Когда я перенес его на наш сервер разработки, у меня появилось 401 ошибка. В нашем случае Kerberos необходимо настроить на сервере разработки для делегирования учетных данных в поле SSRS.

Возможно, вы захотите убедиться, что новый сервер делегирует свои учетные данные машине SSRS, и посмотрите, имеет ли это какое-либо значение.

Надеюсь, это поможет,

Bill

...