0

I'm struggling with the following issue. The setup:

  • ASP.NET webforms application on .NET 4.
  • Session State by State Service.
  • Three webservers. All three host the webapplication. One is also acting as the ARR Controller.

Webserver 1: Windows 2012. IIS 8. ASP.NET State Service. ARR Controller.

Webserver 2: Windows 2012. IIS 8.

Webserver 3: Windows Server 2008R2. IIS 7.5. ASP.NET 4.5.2 is installed.

While navigating/switching between the servers, the Httpcontext.Session is null:

HttpContext context = HttpContext.Current;
if (context.Session == null)
{
    CurrentLogger.Logger.Info("Context.Session is null");
}

If I'm lucky, and the request redirects to the same server, It keeps the session.

The sessionState server is configured like this:

<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.2.53:42424" cookieless="false" timeout="30" />

I've also set the machine Key:

<machineKey validationKey="[xxxxx]" decryptionKey="[xxxx]" validation="SHA1" />

I require all my cookies to be sent only over SSL. Using IIS logging I see that this isn't a problem. The auth & session cookies are beïng sent to all webservers.

What might cause my session to be null between the servers?

4

1 に答える 1

0

解決策はここにあります: https://stackoverflow.com/a/456238/167196

Web ファーム内のさまざまな Web サーバー間でセッション状態を維持するには、Microsoft インターネット インフォメーション サービス (IIS) メタベース内の Web サイトのアプリケーション パス (\LM\W3SVC\2 など) がすべての Web サーバーで同じである必要があります。 Web ファーム内のサーバー。アプリケーション パスでは大文字と小文字が区別されるため、大文字と小文字も同じである必要があります。

于 2016-02-16T14:56:24.150 に答える