Я не могу решить проблему с отчетом по SSRS.
Сценарий: ссылка в приложении Silverlight загружает новую веб-страницу, содержащую элемент управления Microsoft.Reporting.WebForms.ReportViewer. Параметры для элемента управления передаются в QueryString на новую страницу.
Если дата передается как 01/08/2011, при загрузке отчета элемент управления датой в средстве просмотра отчетов имеет значение 08/01/2011 (т. Е. Он был преобразован в американский формат, и моя локаль - United Королевство, en-GB).
Это происходит только в развернутом решении, оно корректно работает в Visual Studio на моем локальном ПК. Мои настройки IE верны.
Я выполнил следующие проверки на развернутом сервере IIS (IIS 6.0): -
Учетная запись для соответствующего пула приложений = сетевая служба.
В Реестре SID для этого пользователя - S-1-5-20, поэтому я проверил настройки реестра в разделе HKEY_USERS> S-1-5-20> Панель управления> Международный. Все они были правильно установлены для Соединенного Королевства. Хотя теоретически они не должны иметь эффекта, я также проверил те же настройки для локальной системы (S-1-5-18) и NT-Authority (S-1-5-19), которые были идентичны.
Затем я проверил Культуру и UI Культуру на веб-сайте. Это были следующие: -
Щелкните правой кнопкой мыши веб-сайт - Свойства> ASP.NET.
Нажмите кнопку «Изменить глобальную конфигурацию», чтобы проверить настройки конфигурации сервера.
Перейдите на вкладку «Приложение» и просмотрите значения «Культура» и «Интерфейс».
Оба значения установлены как en-GB. Итак, хорошо.
То же самое сделал с кнопкой «Редактировать конфигурацию», которая предназначена для просмотра / редактирования файла конфигурации конкретного приложения. Значения файла конфигурации веб-сайтов заменят значения файла конфигурации сервера. Это тоже нормально.
Затем я проверил сервер SSRS.
Сервис работает под учетной записью «Локальная система».
Настройки реестра для этой учетной записи верны. HKEY_USERS> S-1-5-18> Панель управления> Международный.
S-1-5-19 и S-1-5-20 также правильные
Директива страницы ReportServer.aspx включает Culture = "en-GB"
(например, <% @ Page Language = "C #" AutoEventWireup = "true" Inherits = "Microsoft.ReportingServices.WebServer.ReportViewerPage" Culture = "en-GB"%>)
В коде значения параметров устанавливаются с использованием Microsoft.Reporting.WebForms.ReportViewer.SetParameters (ms.ReportParameter []) и ms.ReportParameter (name, value, visible), и параметры, безусловно, являются правильными значениями при получении на данный момент через веб-приложение (когда я перехожу через код).
Я не знаю, куда повернуть дальше. Единственное отличие, которое у меня есть, но я не могу себе представить, что это проблема, состоит в том, что строка запроса кодируется URLE в развернутой версии, но не в проекте на моем локальном ПК, т.е.
[версия сервера]
...% 26END_DATE% 3d31% 2f07% 2f2012 + 00% 3A00% 3A00% 26START_DATE% 3d01% 2f08% 2f2011 + 00% 3A00% 3A00
[локальная версия]
... & END_DATE = 31/07/2012 + 00: 00: 00 & START_DATE = 01/08/2011 + 00: 00: 00
Буду крайне признателен за любые предложения, которые есть у каждого.