我正在努力解決以下問題。安裝:在.NET 4HttpContext.Session爲空應用程序請求路由(ARR)
- ASP.NET Web表單應用程序
- 會話狀態的狀態服務。
- 三個網絡服務器。所有這三個主機的網絡應用程序。其中一位還擔任ARR控制員。
網絡服務器1: Windows 2012. IIS 8. ASP.NET狀態服務。 ARR控制器。
網絡服務器2: 的Windows 2012 IIS 8
網絡服務器3: 的Windows Server 2008R2。 IIS 7.5。 ASP.NET 4.5.2已安裝。
在瀏覽/服務器之間切換時,Httpcontext.Session爲空:
HttpContext context = HttpContext.Current;
if (context.Session == null)
{
CurrentLogger.Logger.Info("Context.Session is null");
}
如果我很幸運,並請求重定向到同一臺服務器,它保留了會議。
將sessionState服務器配置是這樣的:
<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.2.53:42424" cookieless="false" timeout="30" />
我還設置了機鍵:
<machineKey validationKey="[xxxxx]" decryptionKey="[xxxx]" validation="SHA1" />
我要求所有的cookie只通過SSL發送。使用IIS日誌記錄我發現這不是問題。會話cookie將發送給所有網絡服務器。
什麼可能導致我的會話在服務器之間爲空?