2015-12-03 80 views
2

我處理使用這樣的代碼Sitecore的應用程序存儲一些「項目」入車對於未通過驗證的用戶(我猜他們不應該):爲什麼我httpsessionstate是失去價值?

this.Session["abc"] 

然後,一旦用戶到達上購物車頁面,並且希望繼續進行,而不是等待時間超過一分鐘而不是會話中的價值丟失!

這裏是我的web.config相關設置:

我在我的繩子結束了,不知道什麼是清潔我的會議?

<sessionState mode="InProc" cookieless="false" timeout="20" sessionIDManagerType="Sitecore.FXM.SessionManagement.ConditionalSessionIdManager"> 
    <providers> 
    <add name="mongo" type="Sitecore.SessionProvider.MongoDB.MongoSessionStateProvider, Sitecore.SessionProvider.MongoDB" sessionType="Standard" connectionStringName="session" pollingInterval="2" compression="true" /> 
    <add name="mssql" type="Sitecore.SessionProvider.Sql.SqlSessionStateProvider, Sitecore.SessionProvider.Sql" sessionType="Standard" connectionStringName="session" pollingInterval="2" compression="true" /> 
    </providers> 
</sessionState> 

<authentication mode="None"> 
    <forms name=".ASPXAUTH" cookieless="UseCookies" timeout="90" /> 
</authentication> 

我猜你並不需要通過驗證才能使用會話? 是的,我做了檢查代碼,確保沒有抵消我的會議。當你沒有在你的佈局VisitorIdentification

+0

你有' VisitorIdentification'在你的佈局?請參閱http://stackoverflow.com/questions/32465430/sitecore-8-session-times-out-at-1-minute –

+0

謝謝Marek,不,我沒有visitoridentification,如何將此添加到我的佈局? – krul

+0

@krul Sitecore.Analytics – nsgocev

回答

7

以1分問題會話超時經常發生。 Sitecore的每一個考慮新的訪問者作爲潛在的爬行機器人,並嘗試如果沒有必要不要用20分鐘會議。

確保你有你的佈局VisitorIdentification。這樣

<%@ Import Namespace="Sitecore.Analytics" %> 
<sc:VisitorIdentification runat="server" /> 

和MVC:您可以將其添加Web窗體像

@using Sitecore.Mvc.Analytics.Extensions 
@Html.Sitecore().VisitorIdentification() 

如果您的Visual Studio仍然抱怨說,它不能在Sitecore.Web.UI.WebControls命名空間中找到VisitorIdentification型,檢查Sitecore.Analytics是否從您的web項目中引用,如果Sitecore.Analytics註冊在<system.web><pages><controls>web.config

<add tagPrefix="sc" namespace="Sitecore.Web.UI.WebControls" assembly="Sitecore.Analytics" /> 

編輯

想想有成千上萬的會話機器人和他們每個人都可以在內存使用方面相當沉重。如果他們都保持20分鐘,他們可以輕鬆殺死服務器。這就是爲什麼Sitecore更改每個新用戶的會話超時並將其設置爲1分鐘的原因。

如果Sitecore的佈局配置正確,且有VisitorIdentification收錄,您的瀏覽器將自動執行另一個請求到服務器和會話超時將被擴展爲默認從web.config設定(如20分鐘)

+1

偉大的答案,謝謝 - 我確信會話狀態超時,私人或共享sesison等問題,這只是缺乏訪客身份標記。 – Andy