Службы отчетов SQL Server 2005 и средство просмотра отчетов

У меня проблема со встраиванием моего отчета на страницу aspx.

Вот мои настройки:
1 сервер с SQL Server 2005 и SQL Server 2005 Reporting Services
1 рабочая станция с XP и VS 2005
Сервер не находится в домене.
Reporting Services - это установка по умолчанию.

У меня есть один отчет под названием TestMe в папке под названием TestReports с использованием общего источника данных.

Если я просматриваю отчет в диспетчере отчетов, он отображается нормально. Если я просматриваю отчет, используя URL-адрес http: // myserver / reportserver, он отображается нормально. Если я просматриваю отчет с помощью http: // myserver / reportserver? / TestReports / TestMe, он отображается нормально. Если я попытаюсь просмотреть отчет с помощью http: // myserver / reportserver / TestReports / TestMe, он просто перейдет на страницу навигации по папкам в домашнем каталоге.

Мое веб-приложение выдает себя за кого-то определенного, чтобы обойти сервер, не входящий в домен. Когда я вызываю отчет из средства просмотра отчетов, используя http: // myserver / reportserver в качестве сервера и / TestReports / TestMe в качестве пути, я получаю эту ошибку:

По соображениям безопасности DTD запрещено в этом XML-документе. Чтобы включить обработку DTD, установите для свойства ProhibitDtd в XmlReaderSettings значение false и передайте настройки в метод XmlReader.Create.

Когда я меняю сервер на http: // myserver / reportserver? Я получаю эту ошибку при запуске отчета:

Клиент обнаружил тип содержимого ответа '', но ожидал 'text / xml'. Запрос не выполнен с пустым ответом.

Я долго искал и не нашел ничего, что решало бы мою проблему. Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

Заранее спасибо,
Кендра


person Kendra    schedule 01.04.2010    source источник


Ответы (1)


В SSRS есть два интересных виртуальных каталога.

http://myserver/reportserver - это то место, где находятся веб-службы. http://myserver/reports - это то место, где находится интерфейс диспетчера отчетов.

http: // myserver / reportserver? / TestReports / TestMe работает, потому что вы переходите к веб-службам и передаете параметр «адреса» нужного отчета. Обратите внимание на? там, указывая, что остальное - параметр строки запроса

http: // myserver / reportserver / TestReports / TestMe пытается перейти в подкаталог виртуального каталога, которого на самом деле не существует.

Чтобы ваша система работала с использованием анонимного доступа, вам необходимо указать IIS, что пул приложений вашего веб-сайта запускается от имени известного пользователя, у которого есть достаточные права для просмотра отчета. Вы можете настроить это в диспетчере отчетов (http://myserver/reports).

Смотри, как дела - удачи.

person Rob Farley    schedule 02.04.2010
comment
Я не понимаю, зачем мне анонимный доступ к службам отчетов, если это не то, что пытается сделать http: // myserver / reportserver / TestReports / TestMe. Однако я попробовал. Я уже настроил в службах отчетов пользователя, у которого есть разрешение на запуск отчета. И в IIS я изменил идентификатор пула приложений, чтобы он запускался от имени указанного пользователя. Я обнаружил, что услуга недоступна. Как только я вернул пул приложений к сетевой службе, он ожил. - person Kendra; 05.04.2010
comment
Вы пытаетесь запустить приложение от имени того, кто не является текущим пользователем. Вы олицетворяете конкретную учетную запись, поэтому вам необходимо предоставить этой учетной записи разрешение на выполнение каких-либо действий в SSRS. Похоже, вы уже это сделали. Ошибка DTD - это та ошибка, которую вам нужно исправить. Попробуйте нижнее предложение на forum.asp.net/t/1180524.aspx и посмотрите если это поможет. - person Rob Farley; 06.04.2010