Tôi có một dịch vụ WCF được lưu trữ trong IIS và muốn trả lại dữ liệu nằm trong bộ nhớ cache của IIS (HttpContext.Current.Cache) Lựa chọn thích hợp nhất của loại dịch vụ này sẽ trở lại là gì?Làm thế nào để trả lại HttpContext.Current.Cache từ WCF?
Trả lời
bất cứ loại bạn được lưu trữ trong bộ nhớ cache của trình ... nó phải được serializable dù
Nếu tôi là bạn, tôi sẽ không dựa trên thực tế là dịch vụ được lưu trữ trong IIS. Nếu bạn muốn lưu trữ dịch vụ WCF của bạn với một số công nghệ khác thì sao? Tôi nghĩ rằng bạn nên kiểm tra memcached đó là một giải pháp bộ nhớ đệm tổng quát hơn nhiều, và nó hoạt động tốt với .NET.
Dù sao, nếu bạn thực sự muốn sử dụng bộ nhớ cache IIS, hãy sử dụng System.Web.HttpRuntime.Cache thay vì HttpContext.Current.Cache dưới dạng HttpContext không phải lúc nào cũng khả dụng.
Ngoài ra, như cruizer nói, loại thực tế của đối tượng của bạn là hoàn toàn không thích hợp miễn là họ đang serializable (có nghĩa là, các lớp học được trang trí với [Serializable) (] thuộc tính). Bộ nhớ cache IIS chính nó không yêu cầu đối tượng serializable nhưng WCF nào.
tôi đồng ý. tránh kết nối chặt chẽ dịch vụ của bạn để làm việc chỉ với IIS. – cruizer
Tôi cũng đồng ý. Xin vui lòng không vài dịch vụ WCF. Nó khiến Juval Lowy khóc. –
+1 cho mẹo System.Web.HttpRuntime.Cache. Tôi đã có một vấn đề với HttpContext.Current.Cache mà không nhận ra đó là nguyên nhân, cố định khi tôi chuyển sang HttpRuntime, nhờ –
Bạn tuần tự hóa các đối tượng của mình để truyền tải chúng, nhưng không cần phải lưu trữ các đối tượng có thể tuần tự được.
Dịch vụ của bạn gọi logic kinh doanh của bạn để xử lý các yêu cầu nhưng những gì vượt qua dây không phải là đối tượng kinh doanh của bạn nhưng hợp đồng dữ liệu của dịch vụ.
Quấn API bộ nhớ cache của bạn và tách nó khỏi Bộ đệm ẩn HttpRuntime. Như DrJokepu đã nói, hãy truy cập bộ nhớ đệm asp.net thông qua HttpRuntime.Cache nếu bạn chọn như vậy.
- 1. trả lại xdocument từ dịch vụ wcf
- 2. Trả lại 401 từ dịch vụ WCF
- 3. Làm cách nào để trả lại JSON sạch từ một Dịch vụ WCF?
- 4. Làm cách nào để trả lại html thô từ WCF WebAPI WebGet
- 5. Cách trả lại Json từ Dịch vụ WCF?
- 6. Làm cách nào để trả lại boolean từ AsyncTask?
- 7. Làm cách nào để trả lại dữ liệu từ QDialog?
- 8. Làm thế nào để trả lại một fstream (C++ 0x)
- 9. DateTime.Kind không được trả lại trong WCF
- 10. Làm thế nào để chỉ cần trả lại JSON từ một JSP
- 11. Làm thế nào để trả lại bool từ proc được lưu trữ
- 12. Làm thế nào để nhận được giá trị trả lại từ TRÌNH TRẺ EM?
- 13. Làm thế nào để trả lại 5 giá trị cao nhất từ vectơ trong R?
- 14. Làm thế nào để trả lại kết quả đầu tiên từ XQuery
- 15. Làm thế nào để trả lại một bảng từ một thủ tục lưu trữ?
- 16. Làm thế nào để trả lại một giá trị boolean từ một regex
- 17. làm thế nào để trả lại một FileResult từ một chuỗi trong asp.net MVC
- 18. Làm thế nào để trả lại giá trị từ chức năng
- 19. Trả lại luồng từ File.OpenRead()
- 20. HttpContext.Current.Cache vs. HttpRuntime.Cache
- 21. Làm thế nào để trả lại đúng std :: string (hoặc làm thế nào để sử dụng đúng giá trị trả lại)
- 22. WCF trả lại đối tượng cho khách hàng
- 23. Dịch vụ WCF: Trả lại các đối tượng tùy chỉnh
- 24. Trả lại JSONP từ Jersey
- 25. WCF - cho phép khách hàng chọn định dạng trả lại
- 26. WCF: Làm thế nào để chỉ định AddressFilterMode.Any tuyên bố
- 27. Trả lại JSONP ở định dạng thích hợp WCF
- 28. Dịch vụ WCF Trả lại "Phương thức không được phép"
- 29. Làm thế nào tôi có thể trả lại một giá trị ngẫu nhiên từ một mảng?
- 30. Trả lại JSON được bao bọc trong chức năng gọi lại từ dịch vụ web REST WCF
nếu bộ nhớ cache trong bộ nhớ bạn không cần phải tuần tự hóa –