2012-03-16 27 views
7

Tôi đang làm việc trên dịch vụ HTTP REST được triển khai trên WCF. Tôi muốn đặt tiêu đề kiểm soát bộ nhớ cache HTTP cho các hoạt động của tôi một cách thích hợp.Đặt tiêu đề kiểm soát bộ nhớ cache HTTP trong dịch vụ WCF

Tôi đã xem một vài ví dụ liên quan đến việc sử dụng WebOperationContext.Current.OutgoingResponse để sửa đổi tiêu đề trong mỗi phương pháp. Nhưng hãy trung thực, đó là một cơn đau ở mông, đặc biệt là vì gần như tất cả các hoạt động của tôi sẽ sử dụng chính sách kiểm soát bộ nhớ cache (no-cache).

Tôi nghĩ rằng phải có một cách thanh lịch để thiết lập điều này. Có lẽ một sự kết hợp của một ServiceBehavior để thiết lập một mức dịch vụ mặc định, và OperationBehaviors để ghi đè lên cho một số hoạt động? Hoặc có thể có một số cách tốt hơn để làm điều này?

Trả lời

2

Dịch vụ WCF tôn trọng cài đặt outputCache trong Web.Config. Ngoài ra, bạn có thể chỉ định OutputCacheProfiles cũng được xác định trong Web.config và sau đó specify which OutputCacheProfle to use at the method level with decorators.

+0

Tôi chưa thử điều này, nhưng sự hiểu biết của tôi về đầu ra Caching là nó chỉ liên quan đến việc giữ kết quả trong bộ nhớ, và không ảnh hưởng đến tiêu đề kiểm soát bộ nhớ cache HTTP. –

+2

@BrianReischl OutputCacheProfiles có một thuộc tính vị trí có thể được định nghĩa là Máy chủ hoặc Máy khách. Khi được đặt thành Client, một đáp ứng có chứa các Tiêu đề HTTP khớp với định nghĩa của OutputCacheProfile. – MyItchyChin

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