2013-07-02 19 views
7

Có cách nào để đặt thời lượng lưu trong bộ nhớ cache web.config cho các trang net của MVC4 không? Tôi có:MVC4 Xem thời lượng bộ nhớ cache trong tệp cấu hình?

[OutputCache(Duration = Convert.ToInt32(ConfigurationManager.AppSettings["cache.eventPage"]), VaryByParam = "Id")] 
public ActionResult.... 

Mà sẽ không biên dịch vì

Một cuộc tranh cãi thuộc tính phải là một biểu thức hằng số, typeof biểu hiện hoặc tạo mảng biểu hiện của một loại tham số thuộc tính

Chúng tôi có rất lưu lượng truy cập tăng đột biến và muốn có thể thay đổi giá trị này rất nhanh chóng với việc đẩy ra một phiên bản mới. Điều này có thể không?

Trả lời

15

Bạn có thể sử dụng OutputCache profiles; xác định một phần trong web.config

<system.web> 
<caching> 
    <outputCacheSettings> 
    <outputCacheProfiles> 
     <add name="CacheProfile1" duration="10" /> <!--10 seconds --> 
     <add name="CacheProfile2" duration="3600" /> <!--one hour--> 
     <add name="CacheProfileNone" duration="0" /> <!--disabled--> 
    </outputCacheProfiles> 
    </outputCacheSettings> 
</caching> 
</system.web> 

Sử dụng nó trên các phương thức hành động của bộ điều khiển thông qua thuộc tính như bạn đã làm. Chỉ cần sử dụng thuộc tính CacheProfile.

[OutputCache(CacheProfile = "CacheProfile1",VaryByParam = "Id")] 

Bạn có thể tạo các cấu hình khác nhau cho từng kịch bản lưu trong bộ nhớ cache mà bạn có.

More info on caching at MSDN

+0

Đây là cách tôi đã kết thúc. Tôi tự hỏi nếu có một cách có nhiều cách để truy cập các giá trị này. Đây có thể là câu trả lời duy nhất mặc dù. –

+1

Tiền thưởng sẽ được trao vào ngày mai vì điều này, đã tiết kiệm cho tôi rất nhiều thời gian. –

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