• Webinars
  • Docs
  • Download
  • Blogs
  • Contact Us
Try Free
Show / Hide Table of Contents

Multi-Region ASP.NET Session State Provider Configuration

Note

This feature is only available in NCache Enterprise edition.

NCache provides Session sharing support across multiple regions. This prevents users from losing their sessions in case you need to reroute your traffic to another location because of traffic or due to disaster recovery. Sessions are replicated across WAN seamlessly without replicating the entire session which may result in bandwidth expense. Figure 1 shows the process flow associated with session sharing across multiple regions.

Multi Region ASP.NET Session Provider in NCache

Prerequisites

To utilize ASP.NET Session State provider in your application, install the AspNet.SessionState.NCache NuGet package by executing the following command in the Package Manager Console:

Install-Package AspNet.SessionState.NCache

Modify Web.Config

Add a section with the section name specified above (<ncache> in this case), under the <configuration> tag in your application's Web.config:

<ncache>
  <sessionLocation>
    <primaryCache id="London_Cache" sid-prefix="LDNC"/>
    <secondaryCache id="NewYork_Cache" sid-prefix="NYKC"/>
    <secondaryCache id="Tokyo_Cache" sid-prefix="TKYC"/>
  </sessionLocation>
</ncache>
Note

The sid-prefix is a unique identifier that is appended by custom session-ID manager in the beginning of session-ID.

Modify sessionState Tag

Enable custom sessionID manager using the sessionIDManagerType attribute of the sessionState element in Web.config and add custom provider.

Member Description
sessionIDManagerType Optional String attribute. Specifies an identifier to make sure that session id remains unique in case multiple applications are using the same cache. Application id should be the same for an application in a web farm. If no app id is specified, nothing will be concatenated with session id.
<sessionState
cookieless ="false"
regenerateExpiredSessionId="true"
mode="Custom" 
customProvider="NCacheSessionProvider" 
timeout="60" sessionIDManagerType="Alachisoft.NCache.Web.SessionStateManagement.CustomSessionIdManager, Alachisoft.NCache.SessionStateManagement">
  <providers>
    <add name ="NCacheSessionProvider"
    type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider"
    sessionAppId="demoApp"
    cacheName="demoClusteredCache"
    writeExceptionsToEventLog="false"
    asyncSession="false"
    enableLogs="false"/>
  </providers>
</sessionState>
  • When Location Affinity is enabled, cacheName specified in <providers> section of Web.config will be ignored.

  • Cookieless sessions are not supported.

See Also

ASP.​NET Session State Provider for NCache
ASP.Net Core
ASP.NET SignalR Backplane Overview

Back to top Copyright © 2017 Alachisoft