Я установил SSRS на своем локальном хосте и использовал BIDS для создания пары отчетов по ним. Они получают доступ к данным с того же SQL Server, на котором развернут SSRS, и при предварительном просмотре они работают нормально. Затем я развернул их на своем локальном SSRS и получил к ним доступ через веб-интерфейс ReportManager, и они снова заработали. Наконец я развернул их на SSRS моего хостинг-провайдера. Та же сделка; хорошее соединение с данными, и оно отлично выглядит в ReportManager.
При первом обращении к ним через ReportManager в любой системе требуются мое имя пользователя и пароль, которые на моем ноутбуке представляют собой только логин и пароль моей учетной записи. Для моего хостинг-провайдера это мой аккаунт для них.
Моя проблема возникает, когда я пытаюсь отобразить отчет с помощью элемента управления ReportViewer в ASP.Net. Очень часто, когда он пытается выполнить рендеринг, я получаю «Bad Logon» или «401: Unauthorized» вместо моего отчета. После долгих чтений и размышлений, я считаю, что проблема заключается в том, что мне нужно войти не на SQL Server, а на веб-сайт (веб-сервис?), Где отображаются мои отчеты. Прямо сейчас, если я вообще не предоставляю учетные данные, я могу получить свои локальные отчеты в ReportViewer (обычно). Однако при развертывании отчетов на удаленном сервере это больше не работает.
После некоторых исследований я создал класс, который реализует IReportServerCredentials, и попытался использовать его для передачи имени пользователя и пароля, но, похоже, это не работает. И меня смущало, должны ли эти учетные данные использоваться для источника данных или для веб-службы.
Если бы кто-нибудь мог подсказать мне, как заставить ReportViewer войти в веб-службу SSRS, я был бы очень признателен.