Использование SSRS с ASP.Net ReportViewer - PullRequest
5 голосов
/ 15 января 2010

Я установил SSRS на своем локальном хосте и использовал BIDS для создания пары отчетов по ним. Они получают доступ к данным с того же SQL Server, на котором развернут SSRS, и при предварительном просмотре они работают нормально. Затем я развернул их на своем локальном SSRS и получил к ним доступ через веб-интерфейс ReportManager, и они снова заработали. Наконец я развернул их на SSRS моего хостинг-провайдера. Та же сделка; хорошее соединение с данными, и оно отлично выглядит в ReportManager.

При первом обращении к ним через ReportManager в любой системе требуются мое имя пользователя и пароль, которые на моем ноутбуке представляют собой только логин и пароль моей учетной записи. Для моего хостинг-провайдера это мой аккаунт для них.

Моя проблема возникает, когда я пытаюсь отобразить отчет с помощью элемента управления ReportViewer в ASP.Net. Очень часто, когда он пытается выполнить рендеринг, я получаю «Bad Logon» или «401: Unauthorized» вместо моего отчета. После долгих чтений и размышлений, я считаю, что проблема заключается в том, что мне нужно войти не на SQL Server, а на веб-сайт (веб-сервис?), Где отображаются мои отчеты. Прямо сейчас, если я вообще не предоставляю учетные данные, я могу получить свои локальные отчеты в ReportViewer (обычно). Однако при развертывании отчетов на удаленном сервере это больше не работает.

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

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

Ответы [ 2 ]

4 голосов
/ 15 января 2010

Предполагая, что вы установили Attirbute ProcessingMode = "Remote" в средстве просмотра, вы, вероятно, столкнулись с проблемой аутентификации. При использовании средства просмотра отчетов в удаленном режиме отчет выполняется в SSRS под учетной записью ASP.Net. Эта учетная запись должна иметь доступ к серверу отчетов и к отчету, который вы хотите запустить. Вероятно, происходит то, что ASP.Net работает под учетной записью, которая не имеет доступа к SSRS.

Если вы хотите установить учетные данные для средства просмотра отчетов, взгляните на этот поток для решения и примера кода.

1 голос
/ 15 января 2010

Всегда сложно удаленно отлаживать проблемы аутентификации, но вы можете решить свою проблему, включив олицетворение в AppPool. Таким образом, когда пользователь вошел в систему, IIS сможет подключиться к SQL Server как ваш пользователь.

Другим подходом может быть использование аутентификации SQL; к сожалению, подробности зависят от того, как вы все подключили.

...