2016-10-24 17 views
6

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?

+0

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

+0

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

Trả lời

5

Đây là sự cố đã biết và lỗi được mở cho .NET 4.6.2 sắp tới với KB151864.

Xin vui lòng xem tại đây để biết thêm chi tiết: https://github.com/Microsoft/dotnet/issues/330

này sẽ được cố định trong .NET 4.6.3. Tôi hiện không biết liệu bản sửa lỗi có được cung cấp trước đó cho 4.6.2 hay không.

Cách duy nhất được giải quyết hiện tại là hạ cấp và xóa KB151864, khi có thể.

LƯU Ý: lỗi chỉ ảnh hưởng đến việc biên soạn thuộc tính "độ tuổi tối đa" trong tiêu đề Cache-Control cho các phản hồi được lưu trong bộ nhớ cache. Cơ chế lưu bộ nhớ cache thực tế và hết hạn suốt đời đang hoạt động.

+0

Nó đã được sửa trên 4.7, không có tin tức về backporting 4.6.x được nêu ra. – isanae

+0

Có vẻ như họ đã sửa nó trong [Xem trước tháng 5 năm 2017 về chất lượng] (https://blogs.msdn.microsoft.com/dotnet/2017/05/17/net-framework-may-2017-preview-of-quality- rollup /) cho 4.6.2. – cflyer

+0

Nó nói: 'Bản phát hành này không còn được khuyến nghị/có sẵn.' ' Đã xảy ra lỗi trong trình cài đặt Bản xem trước chất lượng tháng 5 năm 2017 không tương thích với trình cài đặt .NET Framework 4.7. Lỗi này chỉ hiển thị khi Bản xem trước chất lượng tháng 5 năm 2017 (bản cập nhật này) và Khuôn khổ .NET 4.7 được cài đặt, theo thứ tự đó.' –

0

Tôi chỉ nói chuyện với nhóm hỗ trợ của Microsoft và đây là những gì họ trả lời tôi:

Cách giải quyết đề nghị là để hạ cấp khung làm việc từ 4.6.2 đến 4.6.1 bằng cách gỡ cài KB31511864 cập nhật.

Đi tới bảng điều khiển -> chương trình -> Chương trình và tính năng -> Cập nhật đã cài đặt. Và xóa KB3151864, điều này sẽ khắc phục sự cố này.

Các vấn đề liên quan