Using Redis Storage for the Reporting REST Service
ติดตั้ง Library
- ติดตั้งแพ็กเกจ
Telerik.Reporting.Cache.StackExchangeRedisเมื่อติดตั้งแพ็กแกจนี้แล้ว จะได้StackExchange.Redisมาด้วย
<Project Sdk="Microsoft.NET.Sdk.Web">
<ItemGroup>
...
<PackageReference Include="Telerik.Reporting.Cache.StackExchangeRedis.Trial" Version="18.1.24.709" /> <em><!-- เพิ่มบรรทัดนี้ --></em>
<PackageReference Include="Telerik.Reporting.OpenXmlRendering3.Trial" Version="18.1.24.709" />
<PackageReference Include="Telerik.Reporting.Services.AspNetCore.Trial" Version="18.1.24.709" />
<PackageReference Include="Telerik.Reporting.WebServiceDataSource.Trial" Version="18.1.24.709" />
</ItemGroup>
</Project>- รันคำสั่งต่อไปนี้เพื่อ Clean และ Restore โปรเจค
dotnet clean
dotnet restoreปรับแก้ไฟล์ Startup.cs
- Import
Telerik.Reporting.Cache.StackExchangeRedisและStackExchange.Redisที่ส่วนบนของไฟล์
....
using Telerik.Reporting.Cache.File; // ลบบรรทัดนี้ถ้าไม่ได้ใช้งาน
using Telerik.Reporting.Services;
using Telerik.Reporting.Cache.StackExchangeRedis; // เพิ่มบรรทัดนี้
using StackExchange.Redis; // เพิ่มบรรทัดนี้- โค้ดส่วน Register
IReportServiceConfigurationให้ปรับแก้ดังนี้
services.TryAddSingleton<IReportServiceConfiguration>(sp =>
new ReportServiceConfiguration
{
ReportingEngineConfiguration = sp.GetService<IConfiguration>(),
HostAppId = "AtlasXWebService",
//Storage = new FileStorage(tempDataReport), // ลบบรรทัดนี้
Storage = new RedisStorage(ConnectionMultiplexer.Connect("localhost:6379"), "axws_report_"), // เพิ่มบรรทัดนี้
ReportSourceResolver = new UriReportSourceResolver(
Path.Join(
sp.GetService<IWebHostEnvironment>().ContentRootPath,
"Report",
"Templates"
)
)
});สามารถใช้ ConfigurationOptions เพื่อจัดการคอนฟิกอื่นๆเพิ่มเติมได้
Storage = new RedisStorage(ConnectionMultiplexer.Connect(new ConfigurationOptions
{
EndPoints = { "localhost:6379" },
Ssl = true, <em>// Enable SSL/TLS</em>
AbortOnConnectFail = false, <em>// Optional, recommended for resilience</em>
AllowAdmin = false <em>// Optional, set true only if you need admin commands</em>
}), "axws_report_"),