2011-10-15 23 views
0

我有一個使用標準授權和股票登錄的mvc 3應用程序。用戶登錄後將需要不到2分鐘,他們必須重新登錄..是否有任何修復這個?MVC 3使用戶每2分鐘登錄一次的應用程序

+0

有效的密鑰對您的應用程序池回收每隔幾分鐘? – Ragesh

+0

它只發生在一個位置或多個位置/計算機上? – Sorean

+0

我不知道..我將它託管在winhost服務器上。無論我從哪個計算機訪問該網站,它都會發生.. – Skindeep2366

回答

2

我最後一次有這個問題是在一個共享主機上運行的nopCommerce的實例。頻繁的應用程序池回收導致我的Cookie被視爲無效,並迫使我的用戶再次登錄。

對我而言,解決方案是在我的web.config文件中手動設置<machineKey>。默認設置允許框架在您每次啓動應用程序時爲您生成一個密鑰對,這就解釋了爲什麼表單auth cookie無法在服務器上解密並被視爲無效。

您可以生成在http://aspnetresources.com/tools/machineKey

+0

我認爲更多的問題在這裏是如果你的應用程序是經常重新啓動(OP每兩分鐘一次?)就是找出爲什麼你的應用程序池經常出現故障。這肯定不是任何默認設置,並且會在應用程序中終止和會話,所以在OP的情況下有些奇怪。兩分鐘太小了。 –

+0

@AdamTuliper,我同意這種頻繁的應用程序池重置會徹底殺死你的應用程序,特別是如果你使用的是像nHibernate這樣的東西,在第一次加載時需要大量的初始化時間。 – Ragesh

+0

不只是殺死你的應用 - 如果發生這種情況,有些事情是錯誤的,應該算出來而不是用機器鍵來解決。沒有主機應該每兩分鐘重新啓動一次你的應用程序池,所以我只是說這裏有其他事情正在進行:) –

1

在你的根web.config中,你有兩次檢查超時屬性設置是否正確?

<system.web> 
... 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
    </authentication> 
... 
<system.web> 

你檢查它實際上是登錄的人上(例如,一旦你登錄,你能瀏覽到第二/第三頁,它仍然有他們登錄)

+0

生成一個他們正在登錄...我可以去幾個頁面,然後它只是彈出登錄...在我的web.config中使用相同的設置.. – Skindeep2366

+1

這是在使用Visual Studio進行調試時還是在服務器上時發生的? – Skuld

+0

它現在修復..這是服務器回收應用程序池..解決方法是使用SQL會話狀態..並使用機器密鑰.. – Skindeep2366

相關問題