Назад | Перейти на главную страницу

Добавление, удаление или редактирование разрешений пользователя в SSRS 2008 вызывает ошибку "" Ответ не является правильно сформированным XML

Я полностью озадачен действительно упрямой проблемой: когда я пытаюсь выполнить какое-либо действие (добавить, удалить, изменить) на вкладке «Безопасность» страницы свойств отчета в пользовательском интерфейсе SSRS 2008, я получаю общую ошибку. Все, что он говорит, это следующее: Ответ не является правильно сформированным XML.

Копаясь в папке LogFiles в корне установки SSRS, я вижу следующее:

назначение роли недопустимо. Назначение роли либо пустое, либо указывает имя пользователя или группы, которое уже используется в существующем назначении ролей для текущего элемента, либо указывает повторяющиеся роли для того же пользователя или группы. ui! ReportManager_0-1! 32c! 23.07.2011-15: 03: 33 :: e ОШИБКА: ответ не является правильно сформированным XML. ui! ReportManager_0-1! 32c! 23.07.2011-15: 03: 33 :: e ОШИБКА: код состояния HTTP -> 500 ------- Подробности -------- System.InvalidOperationException : Ответ не является правильно сформированным XML. ---> System.Xml.XmlException: произошел неожиданный конец файла. Не закрываются следующие элементы: Сообщение, деталь, мыло: Неисправность, мыло: Тело, мыло: Конверт. Строка 3, позиция 5470.

в System.Xml.XmlTextReaderImpl.Throw (исключение e)

в System.Xml.XmlTextReaderImpl.ThrowUnclosedElements ()

в System.Xml.XmlTextReaderImpl.ParseElementContent ()

в System.Xml.XmlLoader.LoadNode (логическое значение skipOverWhitespace)

в System.Xml.XmlLoader.ReadCurrentNode (документ XmlDocument, средство чтения XmlReader)

в System.Xml.XmlDocument.ReadNode (средство чтения XmlReader)

в System.Web.Services.Protocols.SoapHttpClientProtocol.ReadSoapException (средство чтения XmlReader)

в System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse (сообщение SoapClientMessage, ответ WebResponse, поток responseStream, логическое значение asyncCall)

в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (String methodName, Object [] параметры)

--- Конец трассировки внутреннего стека исключений ---

в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (String methodName, Object [] параметры)

в Microsoft.SqlServer.ReportingServices2005.ReportingService2005.SetPolicies (String Item, Policy [] Policies)

в Microsoft.SqlServer.ReportingServices2005.RSConnection.SetPolicies (String Item, Policy [] Policies)

в Microsoft.ReportingServices.UI.ImageTextButton.RaisePostBackEvent (String eventArgument)

в System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument)

в библиотеке System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)! ReportServer_0-2! a14! 23.07.2011-15: 03: 33 :: Вызов GetSystemPropertiesAction (). ui! ReportManager_0-1! 32c! 23.07.2011-15: 03: 33 :: e ОШИБКА: исключение в ShowErrorPage: System.Threading.ThreadAbortException: поток прерывается. в System.Threading.Thread.AbortInternal () в System.Threading.Thread.Abort (Object stateInfo) в System.Web.HttpResponse.End () в Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage (String errMsg) в System. Threading.Thread.AbortInternal () в System.Threading.Thread.Abort (Object stateInfo) в System.Web.HttpResponse.End () в Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage (String errMsg)

Базы данных (ReportServer и ReportServerTempDB) оказались чистыми, когда я запустил DBCC CHECKDB.

Эта ошибка не позволяет мне выполнить одно из следующих действий:
1. Используйте «Изменить безопасность элемента» для отчета или папки.
2. Удалите имя пользователя со страницы безопасности домашней папки.
3. Добавьте нового пользователя, используя «Назначение новой роли».

Что действительно странно, так это то, что некоторые из этих трех действий работают в некоторых папках отчетов. Я не вижу ничего общего между теми, которые работают, и теми, которые не работают.

Любые идеи??

ПРОБЛЕМА БЫЛА РЕШЕНА!

Основная причина: Был пользователь, которого каким-то образом 3 раза добавляли к четырем различным ролям в домашней папке. Любая подпапка, использующая те же права, что и «Домашняя» (наследование), страдает теми же последствиями. Почему SSRS должен разрешать это в первую очередь или не отмечать это четко в журнале ошибок, мне не по силам!

Разрешение: Удалены дубликаты для пользователя (2 из 3 записей) в пользовательском интерфейсе SSRS.

Уроки выучены:
1. Прочтите каждую ошибку несколько раз, НО не увлекайтесь самой вопиющей ошибкой.
2. Попробуйте отделить симптомы от причин (в данном случае причиной было наличие повторяющихся идентификаторов, но в журналах ошибок вы увидите целую кучу фраз вроде «Произошел неожиданный конец файла», которые в стрессовых обстоятельствах могут легко ввести в заблуждение и отправить тебя в кроличью нору!
3. Относитесь к любому предложению с щепоткой соли, но тщательно проверяйте его.

Если возможно, я бы:

  1. Экспорт отчетов из SRSS
  2. Удалить SRSS
  3. Удалите / переименуйте базы данных SRSS (резервное копирование тоже было бы хорошей идеей)
  4. Создайте новый экземпляр SRSS
  5. Снова добавьте все отчеты (вручную, если можете) и попытайтесь настроить параметры.