2012-04-09 47 views
6

Bộ nhớ cache ASP.NET được quản lý trong IIS 7 ở đâu? Tôi biết rằng nó được lưu trữ trong bộ nhớ của máy chủ, nhưng quá trình quản lý nó là gì? Là nó trong không gian địa chỉ của w3wp.exe, hoặc là nó trong một quá trình/địa điểm? Và dữ liệu Phiên sử dụng bộ nhớ cache hay Phiên làm việc có khác nhau không?Vị trí của bộ nhớ đệm ASP.NET

Trả lời

3

Bạn định cấu hình nơi dữ liệu Phiên được lưu trữ trong web.config của bạn với sessionState element. Nếu được đặt thành InProc, nó sẽ được lưu trữ trong bộ nhớ trong quy trình w3wp.exe tương ứng với Hồ bơi ứng dụng của ứng dụng của bạn. Bạn cũng có thể, ví dụ, lưu trữ nó trong một cá thể SQL Server.

Nếu phần tử đó không được xác định trong tệp cấu hình của bạn, hãy kiểm tra cấp máy web.config cho phiên bản/kiến ​​trúc khung mục tiêu của bạn.

+0

Bạn đúng, cảm ơn. Tôi cũng đã tự mình đào bới (thông qua Reflector) và tìm hiểu thêm thông tin. Đối tượng ASP.NET Cache chính (cuối cùng) thực hiện chính nó như là một HashTable được quản lý. Không có voodoo COM mà tôi đã được nửa chừng mong đợi. Dường như tất cả bộ nhớ đệm ASP.NET được thực hiện thông qua mã được quản lý, tức là tất cả các đối tượng bộ nhớ cache được lưu trữ trong không gian địa chỉ của w3wp.exe. –

+0

Để sao lưu điều này hơn nữa, tôi luôn nghĩ rằng việc tái chế nhóm ứng dụng sẽ loại bỏ các mục khỏi 'HttpContext.Cache'. Tôi không thể tìm thấy bất kỳ thông tin hỗ trợ nào, nhưng điều đó khiến tôi tin rằng nó được lưu trữ trong bộ nhớ trong trường hợp tương ứng của 'w3wp.exe'. – wsanville

+0

Yup, thông tin hỗ trợ là bộ đệm được lưu trữ dưới dạng HashTable (xem lớp System.Web.Caching.CacheSingle). Không có mã không được quản lý. Bây giờ cả hai chúng ta đều biết. :) –

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