File Storage for Memory in Report Viewer
To reduce memory use in the Bold Reports® ASP.NET Core Report Viewer, enable cache file storage by implementing the IReportHelperSettings interface in your Report Viewer controller and setting the storage provider to StorageProvider.File.
What is cache file storage in Report Viewer?
Cache file storage is a Report Viewer feature that manages data in files that might otherwise be held in memory, which improves scalability in report processing and rendering operations. File storage is particularly useful in environments with limited RAM or when you handle large volumes of data.
How do I enable cache file storage in ASP.NET Core?
To enable cache file storage in the ASP.NET Core Report Viewer, implement the IReportHelperSettings interface in your controller and initialize the file storage settings, as the following steps describe.
Steps to Enable File Storage:
-
Inherit Interface: Inherit the
IReportHelperSettingsinterface in your Report viewer controller.
-
Implement Interface Methods: Provide implementations for the required interface methods.

-
Initialize File Storage Settings:
helperSettings.StorageSettings = new CacheStorageSettings(); helperSettings.StorageSettings.Provider = StorageProvider.File; helperSettings.StorageSettings.ItemTypes = StorageItemTypes.Report;
-
Add
CacheStorageSettingsClass:public class CacheStorageSettings : BoldReports.Web.StorageSettings { public override byte[] GetBytes(string key, string storageModelType) { try { var fileDirectory = Path.Combine("Need to provide the report rendering cache file storage directory", key, key + "-" + storageModelType + ".json"); if (File.Exists(fileDirectory)) { return File.ReadAllBytes(fileDirectory); } } catch (Exception ex) { // Log your error. } return null; } public override void SetBytes(string key, byte[] value, string storageModelType) { try { string fileDirectory = Path.Combine("Need to provide the report rendering cache file storage directory", key); if (!Directory.Exists(fileDirectory)) { Directory.CreateDirectory(fileDirectory); } var jsonFile = Path.Combine(fileDirectory, key + "-" + storageModelType + ".json"); File.WriteAllBytes(jsonFile, value); } catch (Exception ex) { // Log your error. } } public override void Delete(string key) { try { string fileDirectory = Path.Combine("Need to provide the report rendering cache file storage directory", key); if (Directory.Exists(fileDirectory)) { Directory.Delete(fileDirectory, true); } } catch (Exception ex) { // Log your error. } } }