Tôi đang sử dụng sản lượng bộ nhớ đệm trong handler HTTP tùy chỉnh của tôi theo cách sau:Output caching trong HTTP Handler và SetValidUntilExpires
public void ProcessRequest(HttpContext context)
{
TimeSpan freshness = new TimeSpan(0, 0, 0, 60);
context.Response.Cache.SetExpires(DateTime.Now.Add(freshness));
context.Response.Cache.SetMaxAge(freshness);
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetValidUntilExpires(true);
...
}
Nó hoạt động, nhưng vấn đề là làm mới trang với F5 dẫn đến tái sinh trang (thay vì sử dụng bộ nhớ cache) mặc dù dòng mã cuối cùng:
context.Response.Cache.SetValidUntilExpires(true);
Mọi đề xuất?
UPD: Có vẻ như nguyên nhân của sự cố là phản hồi trình xử lý HTTP không phải là bộ nhớ đệm trên máy chủ. Mã sau hoạt động tốt cho biểu mẫu web, nhưng không hoạt động cho trình xử lý:
Response.Cache.SetCacheability(HttpCacheability.Server);
Có một số chi tiết cụ thể về bộ nhớ đệm của trình xử lý http trên máy chủ không?
Cảm ơn bạn đã tìm giải pháp này, đã làm việc cho tôi với các tham số truy vấn có giá trị đơn. Nhưng khi tôi có một tham số đa giá trị như '? Id = 1 & id = 2 & id = 3' thì điều này vẫn không hoạt động. Tôi không biết tại sao, nhưng muốn cho người khác biết về nó. – Oliver