Chúng tôi sử dụng máy chủ Windows 2008 R2 Enterprise và IIS7.5.7600.16385, và tôi đã triển khai một trang web đơn giản (asp.net mvc, C#, .net framework 4.5.1) trên máy chủ. một bộ điều khiển như dưới đây, và * .cshtml chỉ ra một datetime:IIS7.5 vấn đề tối đa tuổi (bộ nhớ cache đầu ra asp.net mvc)
public class DetailController : Controller
{
[OutputCache(Duration = 300, VaryByParam = "id")]
public ActionResult Index(int id)
{
return View();
}
}
khi tôi lần đầu tiên yêu cầu url http://localhost:80/Detail/Index?id=3, phản ứng là đúng:
Cache-Control:public, max-age=300
Date:Mon, 24 Oct 2016 12:11:59 GMT
Expires:Mon, 24 Oct 2016 12:16:51 GMT
Last-Modified:Mon, 24 Oct 2016 12:11:51 GMT
nhưng, khi tôi yêu cầu url lại (ctrl + f5) thì max-age không chính xác (sau đó phản ứng là từ bộ nhớ cache server):
Cache-Control:public, max-age=63612908450
Date:Mon, 24 Oct 2016 12:16:34 GMT
Expires:Mon, 24 Oct 2016 12:20:50 GMT
Last-Modified:Mon, 24 Oct 2016 12:15:50 GMT
tôi không biết lý do tại sao max-age quá lớn, và làm thế nào nó được tạo ra, nó sẽ hoàn nguyên khi bộ nhớ cache đầu ra hết hạn (ctrl + f5). Trong env sản xuất của tôi, độ tuổi tối đa không chính xác gây ra một liên kết url nhấp vào đọc nội dung từ bộ nhớ cache của trình duyệt.
bất kỳ ai biết cách khắc phục?
có vẻ như là lỗi của khung .net 4.6.2 (394806), khung máy chủ của chúng tôi là 4.6.2 không 4.5.1. Và tôi thử trong một máy chủ đã cài đặt .net framework 4.5.1, nó hoạt động tốt, sau đó tôi cập nhật lên 4.6.2, bây giờ vấn đề xảy ra – mofee
Lưu ý rằng lỗi này cũng đã tự đánh vào StackExchange. Xem [Câu trả lời của Nick Craver tại đây] (https://meta.stackexchange.com/a/293496/300549) và [bình luận của anh ấy (tức giận) về báo cáo lỗi] (https://github.com/Microsoft/dotnet/issues/330 # issuecomment-292651969). – isanae