В SSRS есть способ отключить создание файла rdl.data - PullRequest
19 голосов
/ 06 августа 2010

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

Ответы [ 4 ]

13 голосов
/ 06 августа 2010

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

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

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

10 голосов
/ 19 апреля 2011

В процессе разработки вы можете отключить кэширование (и исключить файлы * .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 голосов
/ 01 октября 2012

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

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

В противном случае просто нажмитена кнопку ОБНОВИТЬ при предварительном просмотре вашего отчета.

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

0 голосов
/ 17 октября 2017

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

$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))
}
...