2012-02-24 2 views
0

В этом сценарии есть. Существует сервер SSRS, в котором есть отчет, где источник данных имеет тип XML, и он использует проверку подлинности Windows, и ничего больше. Внутри отчета есть набор данных, который использует этот источник данных с этим для запроса «= Code.ReportUser.GetListOfItems()». Это вызывает метод в пользовательской сборки, который подключается к данным базы данных и возвращает в виде строки отформатированных, как это (угловые скобки изменен фигурная для чтенияReporting Server выдает ошибку для метода RunEmbeddedQuery для источника данных XML

"<Query><XmlData><Items>" + xmlDocument.DocumentElement.InnerXml + "</Items></XmlData></Query>" 

где SQL DataTable записывается в XMLDOCUMENT. Если я иду сервер отчетов через IE и запустить отчет, все работает так, как должно. Проблема возникает, когда вы добавляете эту ссылку в приложение Zangle, которое запускает его как «URL-адрес отчета IEHOST.app». Я считаю, что это приложение foxpro, которое открывает браузер объект и отчет терпят неудачу в наборе данных, который использует мой источник данных xml. Нет сомнений в правильности URL или отчетов, поскольку он функционирует в другой среде.

Это сервер и я получаю:

library!ReportServer_0-8!ca0!02/24/2012-10:18:45:: 
    Call to GetPermissionsAction(path to my report). 
library!ReportServer_0-8!e68!02/24/2012-10:18:45:: 
    Call to GetSystemPropertiesAction(). 
library!ReportServer_0-8!e68!02/24/2012-10:18:45:: 
    Call to GetPropertiesAction(path to my report, PathBased). 
library!ReportServer_0-8!10bc!02/24/2012-10:18:45:: 
    Call to GetSystemPermissionsAction(). 
library!ReportServer_0-8!e68!02/24/2012-10:18:45:: 
    Call to GetSystemPropertiesAction(). 
processing!ReportServer_0-8!10bc!02/24/2012-10:18:45:: 
    e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , 
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: 
    Error during processing of the CommandText expression of dataset ‘Items’.; 
processing!ReportServer_0-8!10bc!02/24/2012-10:18:45:: 
    e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , 
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: 
    Cannot set the command text for dataset 'Items'. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: 
    Error during processing of the CommandText expression of dataset ‘Items’. 
    at Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSet.RunEmbeddedQuery(Boolean& readerExtensionsSupported, Boolean& readerFieldProperties, List`1 queryParams, Object[] paramValues) 
    --- End of inner exception stack trace ---; 

Я не уверен, что это значит. Есть предположения? это похоже на проблему с разрешением, но я не понимаю, где. Я попытался изменить аутентификацию источника данных xml из окон на none, а затем добавить учетную запись AD в качестве пользователя выполнения на сервере отчетов. Это не изменило ничего, что все еще работает в браузере, но из объекта браузера Zangle. Еще одна вещь, сервер требует аутентификации и весь отчет независимо от среды promt для входа и успешной аутентификации, поэтому мои учетные данные, похоже, переходят на сервер, и только мой источник данных xml бросает ошибку при запуске с помощью Zangle. Поделитесь своими идеями. Я программист, но я не слишком полезен для сервера, и я новичок в SSRS. Спасибо.

+0

До сих пор я сузил проблему до строки запроса. Я жёстко строку запроса читать Успех с тем же набором данных типа XML и встроенную проверку подлинности Windows (те все настройки у меня есть для него) и доклад проходит внутри Foxpro приложения интернет-браузера в качестве предназначена. Похоже, проблема связана с тем, что запрос был вызовом метода для сборки, возвращающей строку. Может быть, отсутствуют некоторые разрешения для такого типа вызовов? – user1231501

+0

Дальнейшее исследование показало, что следующая проблема вызывает проблему (соединение SqlConnection = новое SqlConnection (this.connectionString)). Если я прокомментирую все, что нужно, и вернусь к твердому значению, eveyrthing отлично работает. Я не вижу какой-либо конкретной ошибки, брошенной здесь, она просто терпит неудачу. Один и тот же код работает очень хорошо через диспетчер отчетов и службу отчетов, а не через объект IE. я должен что-то пропускать в разрешениях. У меня есть [SqlClientPermissionAttribute (SecurityAction.Assert, Unrestricted = true)], установленный для класса, метод которого содержит это с помощью директивы. – user1231501

+0

Решено. Оказывается, что приложение foxpro уменьшает все, и имя сервера sql, переданного в сборку, не совпадает с именем, хранящимся в сборке. Глупый :) Итак, теперь мы будем делать строчные сравнения по сравнению с другими. – user1231501

ответ

0

Решено. Оказывается, что приложение foxpro уменьшает все, и имя сервера sql, переданного в сборку, не совпадает с именем, хранящимся в сборке. Глупый :) Итак, теперь мы будем делать строчные сравнения по сравнению с другими.

+0

, чтобы прояснить проблему: исходя из поведения, которое я наблюдал при доступе к Globals! ReportFolder.Value, вы не возвращаете значение, которое вы видите в диспетчере отчетов, вы получаете значение, которое было частью URL-адреса, отправленного на сервер. Я думаю, что это странная функция, но это то, что у меня есть на моем сервере SSRS – user1231501