4

我一直在忙這個好幾個月了。會話狀態在asp.net web farm中丟失

我現在有1個網站2臺服務器。使用round robin dns,我發現在開始的時候一切正常(檢查它改變的網站的ip,但我可以繼續我的會話),但是一段時間後,我失去了會話,看起來像formsauthentication cookie不能被讀取,並且被丟棄。 (假設)但是這並不是一直髮生的。只是有時。

我使用IIS7共享配置,我設置了機鍵和我使用的StateServer指着其中一臺服務器,我證實,這兩個服務器的StateServer的作品上。

我讀一些有關IIS應用程序的路徑,但我真的不知道是什麼意思,難道是Web應用程序,或在安裝IIS的路徑的路徑?在兩種情況下,它們都是一樣的。

任何人有一些想法?

回答

2

我會回答這一個我自己,因爲任何人都面臨着同樣的問題。一切設置正確,但機器密鑰應位於system.web下的web.config中。通過生成IIS 7的關鍵因某種原因沒有工作,我有一個在線工具,它產生的:http://aspnetresources.com/tools/machineKey

所以,做負載均衡,並建立IIS7上你應該多臺服務器:

  • 使用一個狀態服務器out-proc(狀態服務器或sql服務器)並且所有 服務器都指向該狀態服務器(例如:stateConnectionString =「tcpip = server1:42424」)
  • 使用iis共享配置以便所有服務器指向共享位置applicationhost.config駐留。
  • 生成計算機密鑰(不通過IIS,只需使用一個在線工具!)
  • 設置NLB(或循環DNS),當你已經登錄由 您的客戶端上刷新你的DNS測試一下看看如果你的會話不會丟失。

希望這可以幫助別人。

0

而且該機按鍵是特定於.NET版本。檢查當前版本:在IIS控制檯的服務器級別,單擊「操作」窗格中的「更改.NET Framework版本」。