Microsoft KB Archive/325056

= PRB: Session State Is Lost in Web Farm If You Use SqlServer or StateServer Session Mode =

Article ID: 325056

Article Last Modified on 10/29/2003

-

APPLIES TO


 * Microsoft ASP.NET 1.1
 * Microsoft ASP.NET 1.0

-



This article was previously published under Q325056



SYMPTOMS
If you use SqlServer or StateServer session state mode, session state may be lost when you run an ASP.NET Web application in a load balanced Web farm environment.



CAUSE
To maintain session state across different Web servers in the Web farm, the application path of the Web site (for example, \LM\W3SVC\2) in the Microsoft Internet Information Services (IIS) metabase must be the same for all of the Web servers in the Web farm. The case also needs to be the same because the application path is case-sensitive.

On one Web server, the instance ID of the Web site where the ASP.NET application is hosted may be 2 (where the application path is \LM\W3SVC\2). On another Web server, the instance ID of the Web site may be 3 (where the application path is \LM\W3SVC\3). Therefore, the application paths between Web servers in the Web farm are different. For additional information about how to check the application path of the Web site, click the following article number to view the article in the Microsoft Knowledge Base:

240225 Description of Adsutil and MetaEdit Used to Modify the Metabase



RESOLUTION
To work around this problem, synchronize the application path for the Web site in the IIS metabase for all Web servers in the Web farm. Make sure that the case is the same since the application path for the Web site is case-sensitive.

Note Microsoft recommends that you back up the IIS metabase before you change the metabase. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

302573 HOW TO: Back Up and Restore IIS

To synchronize the application path of the Web site, use one of the following methods:  Modify the IIS metabase by using code.  Create a text file, and then name the file Moveinstance.vbs.  Add the following script code to Moveinstance.vbs, which modifies the instance IDs of the Web sites so that they are the same: Dim WebService Dim oldstr Dim newstr Dim args Set args = WScript.Arguments If args.Count < 1 Then Wscript.Echo &quot;Must have original instance id and new instance id&quot; &    chr(10) & chr(13) & _ &quot;usage: moveinstance.vbs 1 5&quot;  & chr(10) & chr(13) & _ &quot;Moves instance 1 to instance 5&quot; WScript.Quit End If Set WebService = GetObject(&quot;IIS://LocalHost/W3SVC&quot;) oldstr = args(0) 'old instance newstr = args(1) 'new instance WebService.MoveHere oldstr,newstr WebService.SetInfo Set WebService = nothing Set args=nothing WScript.echo &quot;DONE&quot;  Save Moveinstance.vbs. Run the script from a command prompt from the same location that you saved the .vbs file in the previous step.

For example, type cscript moveinstance.vbs 1 5 at the command prompt. This changes the instance ID of a Web site from 1 to 5 in the metabase.

Note Make sure that the new instance ID that you assign to the Web site is not already assigned to another Web site. This may lead to unreliable results. </li> Modify the metabase to synchronize the application path of the Web site by using any of the tools that are described in Microsoft Knowledge Base article Q240225. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

240225 Description of Adsutil and MetaEdit Utilities Used to Modify the Metabase

</li></ul>

Note When you use StateServer mode, make sure that the <machineKey> section has the same keys in the Machine.config file across the Web farm. For additional information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

312906 HOW TO: Create Keys by Using Visual C# .NET for Use in Forms Authentication

313091 HOW TO: Create Keys by Using Visual Basic .NET for Use in Forms Authentication

Additional query words: webfarm session state sql server

Keywords: kbstate kbprb kbconfig KB325056

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.