Azure AppFabric cache come Session State Provider

Cercando di utilizzare la cache di AppFabric per condividere lo stato della sessione di una web role Azure tra più istanze, sono incappato in un fastidiosissimo bug.

In pratica utilizzando il normale classico provider

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

eseguendo in locale con l’emulatore ed utilizzando 2 o più istanze, random, la sessione viene cancellata con ripercussioni terrificanti sul software.

Dopo qualche googlata sono incappato in questo post
http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/127ba211-51b2-4f3e-9e7b-1b41af269708 
che riporta lo stesso problema e fortunatamente un workaround.

Riassumendo, occorre cambiare il provider in questo modo

    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
      <providers>
        <clear />
        <add name="AppFabricCacheSessionStoreProvider" 
type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider, Microsoft.ApplicationServer.Caching.Client"
cacheName="default"
sharedId="myAppName" /> </providers> </sessionState>

Da notare che una volta pubblicato “fisicamente” su Azure il problema spariva.

Ora però non so se con questo nuovo provider rischio di trovarmi qualche brutta sorpresa quando andrò online: se non posterò update catastrofici vorrà dire che il nuovo provider funziona anche su Azure Occhiolino

posted @ venerdì 2 marzo 2012 12:11

Print
Comments have been closed on this topic.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011