Вопрос

В настоящее время я работаю над большим гибридным веб-приложением для интрасети, которое использует SharePoint для агрегирования контента с нескольких других внутренних серверов, таких как:

  • moss.myapp.internalserver.local - Портал MOSS
  • ssrs.myapp.internalserver.local — отчеты служб отчетов SQL Server.
  • app.myapp.internalserver.local — пользовательские формы ASP.NET MVC.

Портал мха вызывает формы MVC с помощью iframe в диалоговых окнах jQuery (точнее, квадратных), которые, в свою очередь, вызывают обратную связь на странице мха с помощью javascript для различных целей, включая закрытие диалогового окна jQuery.

Очевидно, это приведет к сбою в использовании одной и той же политики происхождения в браузерах (и, следовательно, не позволит javascript вызывать фреймы/окна из разных источников), поэтому я обошел эту проблему, установив document.domain = "myapp.internalserver.local" в главные страницы MOSS и страницы форм приложения, что позволяет междоменным сценариям нормально работать между moss и содержимым приложения.

Итак, все работает отлично, пока я не добавляю в смесь отчет SSRS, используя веб-часть средства просмотра отчетов (по умолчанию для SharePoint, а также несколько сторонних, включая мою собственную, которые просто используют компонент средства просмотра отчетов ASP.NET).

Средство просмотра отчетов, похоже, требует обработчика, который возвращает HTML на страницу.Тем не менее, полученное содержимое средства просмотра отчетов, похоже, визуализируется и записывается в некоторые iframe, но это не дает нам возможности установить document.domain в этих iframe, и поэтому сценарии терпят неудачу.

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

Кто-нибудь видел это раньше, и если да, то как вы это обошли?

Спасибо, Тони

Это было полезно?

Решение 2

В итоге я решил эту проблему, используя подкадры согласно этому сообщению в блоге:

http://www.deepcode.co.uk/2009/11/overcoming-cross-domain-issues-between.html

Другие советы

Обычно, чтобы веб-части SSRS работали в SharePoint, вам нужно включить Kerberos. Если вы хотите передавать те же отчеты (используя тот же контекст безопасности), вам необходимо предоставить права учетной записи пула приложений SharePoint для получения/запуска отчетов. .Вы также можете рассмотреть возможность установки SSRS в «интегрированном» режиме, но это довольно сложный процесс, поскольку на сервере sql потребуется разместить SharePoint в качестве другого члена фермы с полностью установленным SharePoint.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top