9.4. Maintaining Session State Across Multiple Web Servers

Problem

You need to configure your application to maintain session state across multiple web servers.

Solution

When the data stored in session is easy to recreate or is not critical, configure your application to use the ASP.NET State Service using the following steps:

  1. Set up a new server with the .NET Framework installed to maintain session state on behalf of your application.

  2. Start the ASP.NET State Service on the designated machine.

  3. Modify the mode attribute of the <sessionState> element of the application web.config file on its current web server to specify the ASP.NET State Service.

  4. Copy the contents of the root folder and subfolders of your application on the current web server to the additional web servers.

When it is critical to not lose any session information if server problems arise, use SQL Server to store all session information, as follows:

  1. In the instance of SQL Server that you will use for this purpose, install the special tables and stored procedures that ASP.NET requires by running the InstallSqlState.sql script provided with the .NET Framework.

  2. Set up a database user with read/write access to the tempDB database.

  3. Modify the web.config file, as shown next, setting the IP address to the address of your SQL Server machine and replacing user and pwd with the settings for the database user with read/write access to the tempDB database.

    <sessionState 
        mode="SQLServer"
                             sqlConnectionString="data source=10.0.1.12;user id= ...

Get ASP.NET Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.