Подтвердить что ты не робот

IN SSRS, есть способ отключить создание файла rdl.data

В SSRS я заметил, что файлы кэша rdl.data хранятся на моей машине dev. Сохраняются ли эти файлы на сервере отчетов при запуске отчетов? Если да, существует ли способ избежать создания этих файлов на сервере?

4b9b3361

Ответ 1

Файлы rdl.data не создаются на сервере - они предназначены исключительно для ускорения времени выполнения отчета во время разработки, когда вы повторно запускаете отчет с теми же параметрами при настройке макета.

В качестве побочного пункта я считаю правильным сказать, что можно настроить службу SSRS на кеширование результатов для повторного использования.

Я не знаю подробностей механизма кэширования, который использует служба; он может использовать механизм на основе файлов, такой как rdl.data, или может хранить результаты в одной из баз данных ReportingServices.

Возможно, кто-то более осведомленный о SSRS может подтвердить детали механизма.

Ответ 2

В разработке вы можете отключить кеширование (и исключить файлы *.rdl.data), отредактировав конфигурационный файл дизайнера.

Для SQL Server 2008 SSRS местоположение по умолчанию будет:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\RSReportDesigner.config

Измените CacheDataForPreview на "false"

Ссылка на источник http://blog.summitcloud.com/2010/05/disable-reporting-services-data-cache-in-development/

Ответ 3

Я не уверен, что ответ на zomf работает (и не Microsoft). Это звучит хорошо в теории, но, похоже, не работает на практике.

Я думаю, что проще всего жить с этими файлами. Если вас беспокоит, вы всегда можете установить свойство AutoRefresh каждого созданного отчета за 1 секунду (хотя раздражающий мигающий эффект и загрузка на вашем сервере могут сделать этот вариант невозможным).

В противном случае просто нажмите кнопку REFRESH при предварительном просмотре отчета.

Другим вариантом может быть создание фиктивных параметров для отчета со случайным образом генерируемым значением при каждом его запуске. Поскольку SSRS показывает только кешированные данные, когда комбинация введенных параметров идентична предыдущему времени запуска отчета, это может решить проблему. Однако я не проверял его на практике.

Ответ 4

PowerShell для спасения, просто скройте его - добавьте проект PowerShell в решение для своих отчетов и установите его как проект запуска в вашей конфигурации сборки:

$path = "../*.rdl.data"

$rdlDataFiles = Get-ChildItem -Recurse -Force -Path "$path";

Write-Output "$path"

$rdlDataFiles | ForEach-Object {
  Write-Output "Hiding *.rdl.data file $_"

  $_.Attributes = $_.Attributes -bor (([System.IO.FileAttributes]::Hidden))

  # Next line isn't required per say, but just a guard.
  $_.Attributes = $_.Attributes -bor (-bnot([System.IO.FileAttributes]::ReadOnly))
}