How to enable ASP.NET SQL Server Session on your web application

In ASP.NET, there are 3 different modes for storing session information:
  • InProc
  • StateServer
  • SQLServer
At WinHost, we support both InProc and SQLServer session. By default, ASP.NET session is stored in-process (InProc).

There are pros and cons for these modes.

InProc mode offers the fastest performance because session is stored in the IIS Worker Process. The downside of InProc session is that sessions can be lost if the worker process is recycled for whatever reason.

SQL Server session on the other hands is slower than InProc, about 15-20% slower, but the session information remains persistent even after the worker process is recycled.

You should choose an appropriate state management mode depending on your application. For example, if losing sessions is not acceptable, you should consider using SQL Session rather than InProc.

To enable SQL Server Session, follow the steps below.
  • While not required, we recommend adding a new MS SQL database in the Site Tools section of Control Panel, dedicated for sessions storage only, to avoid potential conflicts (WinHost Basic customers will have to upgrade to WinHost Max to add a second database)
  • Create a support ticket to request an installation. Include the Database name in your message
  • You will receive an email as soon as the Session State database schema is created
  • Update your web.config file as follows
< sessionState 
  mode="SQLServer" 
  allowCustomSqlDatabase = "true" 
  sqlConnectionString="data Source=<SQLSERVERNAME>;database=<SQLDATABASENAME>;user id=<SQLUSER>;password=<SQLPASSWORD>" 
  cookieless="false" 
  timeout="15" 
/> 
  • Session information should be stored in your SQL database now
If you run in to problems using this code, please post in our community forum. Technical support cannot assist with specific coding related issues.

Article ID: 626, Created On: 8/14/2009, Modified: 4/21/2011