簡體   English   中英

在Azure雲服務中啟用同位置會話緩存

[英]Enabling co-located Session Caching in an Azure Cloud Service

現在我有一個Azure Cloud Service托管一個MVC應用程序 - 當前 - 當使用Staging <> Production的VIP交換方法更新時,會殺死所有會話。 我沒有圍繞會話管理做任何配置,所以這是可以預期的。

我現在正試圖通過以下鏈接解決這個問題:

http://www.windowsazure.com/en-us/manage/services/cache/net/how-to-in-role-cache/

我啟用了角色內緩存。 我的dataCacheCLients看起來像這樣:

<dataCacheClients>
    <dataCacheClient name="default">
      <!--To use the in-role flavor of Windows Azure Cache, set identifier to be the cache cluster role name -->
      <!--To use the Windows Azure Cache Service, set identifier to be the endpoint of the cache cluster -->
      <autoDiscover isEnabled="true" identifier="MyRoleName" />
    </dataCacheClient>
  </dataCacheClients>

以上鏈接指向實際設置會話緩存的web.config:

http://www.windowsazure.com/en-us/manage/services/cache/net/how-to-in-role-cache/#store-session

我在web.config中取消注釋了那個部分(只是會話緩存),現在看起來像這樣:

 <!-- Windows Azure Cache session state provider -->
    <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
      <providers>
        <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
      </providers>
    </sessionState>
    <!-- Windows Azure Cache output cache provider -->
    <!--Uncomment this section to use Windows Azure Cache for output cache-->
    <!--<caching>
      <outputCache defaultProvider="AFCacheOutputCacheProvider">
        <providers>
          <add name="AFCacheOutputCacheProvider" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheOutputCache" />
        </providers>
      </outputCache>
    </caching>-->

現在,當我在本地運行它(沒有使用模擬器,只是IIS中的MVC應用程序)時,我收到以下錯誤:

發現的或指定的地址都不匹配套接字地址族。 參數名稱:context

我在這里沒有太多細節,它只是被拋入Source Not Available窗口。

因此,我認為這可能只是一個我可以在以后擔心的本地問題,我發布到Azure。 該應用運行正常。 但是部署和VIP交換會中斷會話,因此它似乎無法正常工作。

可能是什么導致了這個? 我試圖准確地遵循所有指示。

我注意到的一件事是,鏈接到的最后一篇文章來自Azure緩存教程 - 我從未設置Azure緩存,因為我使用的是具有我的共同角色的存儲帳戶(根據前面的教程)。 什么可能導致這些問題?

是的,我認為你遇到的是正確的。

首先,您的本地測試失敗是因為您啟動了MVC應用程序。 這樣,您的應用程序在沒有azure仿真器的情況下運行,這意味着緩存客戶端無法從角色名稱(您在web.config中指定的identifier部分)中找到緩存端點。 我認為如果你在本地模擬器上運行你的應用程序它應該工作。

其次,當您交換VIP時,您的會話應該丟失。 角色內緩存利用您的一些角色實例的內存。 當您交換VIP時,公共IP將被配置到另一個插槽,這意味着您的緩存實例也將被切換。 要解決此問題,我希望您嘗試新的緩存服務(預覽)。 通過這種方式,您可以為訂閱創建專用緩存,以便您可以在雲服務部署,虛擬機和網站中使用它們。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM