2012-09-11 6 views
6

Đối với ứng dụng MVC4 của tôi, chạy trong Azure, tôi lưu các phiên trong bộ nhớ cache cùng nằm. Như được mô tả trong this How-to mà Microsoft cung cấp.Phiên được lưu trữ trong bộ nhớ cache Azure cùng nằm không đồng bộ trên nhiều trường hợp

Tôi chạy hai phiên bản nhỏ và mọi thứ có vẻ hoạt động tốt. Tôi có thể đăng nhập vào ứng dụng và tôi vẫn đăng nhập khi tôi duyệt qua trong ứng dụng. Vì vậy, phiên dường như hoạt động trên cả hai trường hợp.

Tuy nhiên, khi tôi cập nhật một cái gì đó dữ liệu phiên như thế này:

HttpContext.Current.Session["someVar"] = "new value"; 

rằng sự thay đổi duy nhất dường như có ảnh hưởng đến các trường hợp có thể xử lý rằng yêu cầu cụ thể. Bây giờ khi tôi duyệt qua ứng dụng, đôi khi tôi nhận được giá trị ban đầu và đôi khi tôi nhận được giá trị được cập nhật.

tôi đã không thực hiện bất kỳ thay đổi đối với web.config, vì vậy nó trông giống hệt như nó làm gì khi nó được bổ sung bởi các gói NuGet:

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider"> 
    <providers> 
    <add name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" 
      cacheName="default" 
      useBlobMode="true" 
      dataCacheClientName="default" /> 
    </providers> 
</sessionState> 

Tôi có cần phải xử lý phiên theo cách khác khi sử dụng bộ nhớ cache Azure, hoặc nó là cái gì khác tôi đang thiếu ở đây?

Trả lời

7

Bạn cần chỉ định applicationName để bộ nhớ cache được phân phối có thể xem trạng thái được chia sẻ trong cùng một ranh giới ứng dụng. Xem MSDN forum post for reference.

<add name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" 
      applicationName="azureMVC4App" 
      cacheName="default" 
      useBlobMode="true" 
      dataCacheClientName="default" /> 

Nếu bạn muốn chia sẻ trạng thái bộ nhớ cache trên ranh giới ứng dụng, bạn cần phải gán sharedId

+0

này có ý nghĩa, cảm ơn bạn! Tôi sẽ cho nó nó một cơ hội. –

+1

Điều đó làm việc như một sự quyến rũ, cảm ơn một lần nữa! –