asp.net-mvc – Sitecore 7.5 MVC和HttpContext.Session.Timeout设置为1分钟

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – Sitecore 7.5 MVC和HttpContext.Session.Timeout设置为1分钟前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将会话超时设置为20分钟但是当我尝试从操作中访问此值时,我得到了1分钟.

Web.Config设置是:

<sessionState mode="InProc" cookieless="false" timeout="20">

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

在Global.asax.cs中,Session_Start的超时值为20min:

HttpContext.Current.Session.Timeout

但在我的控制器中的操作设置为1分钟:

System.Web.HttpContext.Current.Session.Timeout 
HttpContext.Session.Timeout

我发现当我从web.config中删除类型为(Sitecore.Nexus.Web.HttpModule,Sitecore.Nexus)的SitecoreHttpModule时,超时工作正常,但我不认为我可以永久删除它.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule"/>
      <add type="Sitecore.Web.RewriteModule,Sitecore.Kernel" name="SitecoreRewriteModule"/>
      <!-- !!!REMOVED MODULE!!! <add type="Sitecore.Nexus.Web.HttpModule,Sitecore.Nexus" name="SitecoreHttpModule"/> -->
      <add type="Sitecore.Resources.Media.UploadWatcher,Sitecore.Kernel" name="SitecoreUploadWatcher"/>
      <add type="Sitecore.IO.XslWatcher,Sitecore.Kernel" name="SitecoreXslWatcher"/>
      <add type="Sitecore.IO.LayoutWatcher,Sitecore.Kernel" name="SitecoreLayoutWatcher"/>
      <add type="Sitecore.Configuration.ConfigWatcher,Sitecore.Kernel" name="SitecoreConfigWatcher"/>
      ...
    </modules>
</system.webServer>

有没有我可以为此模块配置此超时的地方,还是有其他方法可以将会话超时设置为所需的值?

解决方法

新用户的每个第一次请求都被视为可能的机器人请求.这就是为什么这些请求的会话超时设置为1分钟.

如果请求由适当的最终用户执行,则页面上应该有VisitorIdentification代码,这实际上将导致对服务器的另一个后台调用并为用户扩展会话.

只需添加

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

到您的布局.cshtml文件.

对于第一个请求,超时将设置为1分钟,但是当Sitecore执行VisitorIdentification调用时,会自动更改回20(或配置的任何内容).

猜你在找的asp.Net相关文章