当前位置:  开发笔记 > 数据库 > 正文

Sitecore 8.1错误:"找不到会话ID管理器来管理当前请求的会话ID"

如何解决《Sitecore8.1错误:"找不到会话ID管理器来管理当前请求的会话ID"》经验,为你挑选了1个好方法。

我正在尝试在Sitecore 8.1中启动并运行基本布局,并且我遇到了一个错误,我可以找到很少的信息.当试图查看任何页面(甚至是后端界面或从Sitecore Rocks连接)时,我收到消息"找不到会话ID管理器来管理当前请求的会话ID".

一些谷歌搜索表明,这与现成的会话提供商的一些问题有关,并建议将其交换出来以保持Mongo中的会话.Sitecore的文档提供了对共享和私有会话的描述.我试图实现这些但继续收到相同的错误.

这是我现在的代码:

APP_CONFIG /包含/ MongoSessionProvider.config



  
    
      
        
          
          
        
      
    
  

App_Config/Include/ConnectionStrings.config(摘录)


Web.config(摘录)


  
    
    
  

请注意,这是在我的本地开发机器上.我有蒙戈运行(并确认其Sitecore的连接),我用它创建Session和sharedsession数据库use sessionuse sharedsession,我的理解是在蒙戈创建数据块的方式.

我在这里错过了什么吗?或者错误是不是意味着我认为它意味着什么?



1> Dmytro Shevc..:

您看到的消息不应该是错误,而是日志警告.它与检索会话ID管理器的配置有关,而不是与会话本身的配置相关.

为何通常会出现此警告

Sitecore.config下面定义getSessionIdManager管道.



Sitecore.FXM.config中,为此管道配置了一个处理器:


  

此管道允许为请求动态选择会话ID管理器.在默认的Sitecore配置中,非默认会话ID管理器仅用于具有显式sessionIdURL参数的请求,即仅用于FXM请求.

对于所有其他请求,将不会显式选择任何会话ID管理器,并将使用默认值System.Web.SessionState.SessionIDManager; 这反映在您看到的警告信息中.这种情况本身没有任何问题,这是默认设计.

在每个页面请求中将消息视为错误

这绝对听起来像是一个缺陷.此消息应该在每个应用程序生存期内记录一次,而不是在每个页面上作为异常引发.

您应该向Sitecore支持报告此信息.

试图修复

我无法调试你的系统,所以我必须蒙住眼睛.我会尝试创建自己的Session ID Manager选择器:

public class CustomSessionIdManagerProcessor
{
    public void Process(GetSessionIdManagerArgs args)
    {
        if(args.SessionIdManager == null)
        {
            args.SessionIdManager = new System.Web.SessionState.SessionIDManager();
        }
    }
}

将其配置为管道中的最后一个处理器getSessionIdManager.这将确保始终显式选择的会话ID管理器,并希望能够防止错误发生.


  
    
      
        
      
    
  

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有