В этом сценарии есть. Существует сервер 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. Спасибо.
До сих пор я сузил проблему до строки запроса. Я жёстко строку запроса читать Успех с тем же набором данных типа XML и встроенную проверку подлинности Windows (те все настройки у меня есть для него) и доклад проходит внутри Foxpro приложения интернет-браузера в качестве предназначена. Похоже, проблема связана с тем, что запрос был вызовом метода для сборки, возвращающей строку. Может быть, отсутствуют некоторые разрешения для такого типа вызовов? –
user1231501
Дальнейшее исследование показало, что следующая проблема вызывает проблему (соединение SqlConnection = новое SqlConnection (this.connectionString)). Если я прокомментирую все, что нужно, и вернусь к твердому значению, eveyrthing отлично работает. Я не вижу какой-либо конкретной ошибки, брошенной здесь, она просто терпит неудачу. Один и тот же код работает очень хорошо через диспетчер отчетов и службу отчетов, а не через объект IE. я должен что-то пропускать в разрешениях. У меня есть [SqlClientPermissionAttribute (SecurityAction.Assert, Unrestricted = true)], установленный для класса, метод которого содержит это с помощью директивы. – user1231501
Решено. Оказывается, что приложение foxpro уменьшает все, и имя сервера sql, переданного в сборку, не совпадает с именем, хранящимся в сборке. Глупый :) Итак, теперь мы будем делать строчные сравнения по сравнению с другими. – user1231501