SALES: 1-800-867-1380
7 out of 9 rated this helpful - Rate this topic

Session State Provider for Windows Azure Cache

The Windows Azure session state provider is an out-of-process storage mechanism for ASP.NET applications. This provider enables you to store your session state in an Windows Azure cache rather than in-memory or in a SQL Server database.

For a sample of session state caching, see Caching Session State and Output Caching Sample.

Capabilities

The Windows Azure session state provider has the following improvements over past ASP.NET session state providers:

  • It internally uses the NetDataContractSerializer class for session state serialization.

  • It can share session state among different ASP.NET applications.

  • It supports concurrent access to same set of session state for multiple readers and a single writer.

  • It can use compression through cache client properties.

The use of NetDataContractSerializer class for serialization results in the support of a wider range of serializable types. This includes support for binary serializable types.

The provider supports the ability for different ASP.NET applications to read and write the same session state data. For example say a developer has two different ASP.NET sites: /contoso and /adventureworks. The session state provider can be configured in each web application to point at the same session state store in the cache cluster. As a result, both applications will read and write the same session data for any given session identifier.

The session state provider supports concurrent access to same set of session state for multiple readers and a single writer. Readers in this case are defined as pages that are marked as using ReadOnly session state. Applications that make extensive use of AJAX callbacks will not experience server-side request queuing if most of the application’s session state access patterns only require read-only access to session state.

To add the Session State provider to an ASP.NET project

  1. First, configure a cache to use with the ASP.NET provider. You can host Cache with a co-located topology or with a dedicated role.

  2. Use NuGet to add Cache support to your ASP.NET project in Visual Studio. For instructions, see How to: Prepare Visual Studio to Use In-Role Cache (Windows Azure Cache).

    ImportantImportant
    These steps require the latest NuGet Package Manager (version 2.1.31002.9028 or higher). To install the latest NuGet Package Manager, go to http://go.microsoft.com/fwlink/?LinkId=240311.

  3. Remove any existing sessionState element that configures session state caching. Do not remove the commented sessionState section that was added by the NuGet package.

  4. In the web.config file, uncomment the sessionState section.

        <!-- Windows Azure Caching 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>
    

The following list provides optional configuration changes that affect the output cache provider.

  • Change the targeted named cache with the cacheName attribute of the add element.

  • Change the source of the cache client settings with the dataCacheClientName attribute of the add element. Set this attribute to the name of an existing dataCacheClient section in the web.config file.

  • Modify the behavior of the cache client by changing the settings in the associated dataCacheClient section. For example, enable compression with the isCompressionEnabled attribute.

    <dataCacheClient name="default" isCompressionEnabled="true">
    
    For a list of available configuration options, see In-Role Cache Client Configuration Settings (Web.config). Note that the ASP.NET providers for Cache do not support binary or custom serialization types. If these serializers are used for session state, the following exception occurs: "Type 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' in Assembly 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is not marked as serializable"

  • Change the settings for the session state provider. For a list of available configuration options, see ASP.NET Session State Provider Configuration Settings (Windows Azure Cache).

To use the provider with Shared Caching, see How to: Configure the ASP.NET Session State Provider (Windows Azure Shared Caching).

In This Section

See Also

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.