• mybatisnet Web环境下多线程问题


        最近在Web环境下使用mybatis,在Winform和服务模式下运行(多线程访问数据库)没有问题。但是在IIS的环境中出现了一个WebSessionStore: Could not obtain reference to HttpContext 异常。

    之前有听说过mybatis在多线程模式下会有异常,不过一直没有遇到过.以为是老版本的问题,也没在意。直到今天遇到这个问题才想起这么个事,首先问度娘,找到了这篇文章。感谢二位。

        http://q.cnblogs.com/q/24859/ 

        不过我在配置中没有找到配置的方法,在源码中倒是有这么一段:

          

    [Test]
            public void Can_plug_HybridWebThreadSessionStore()
            {
                string uri = "assembly://Apache.Ibatis.DataMapper.SqlClient.Test/bin.Debug/SqlMap_Test_Configure.config";
                IResource resource = ResourceLoaderRegistry.GetResource(uri);
    
                 //主要是这个(楼主注)
                ConfigurationSetting setting = new ConfigurationSetting();
                setting.SessionStore = new HybridWebThreadSessionStore("test");
                setting.ValidateMapperConfigFile = true;
    
                IConfigurationEngine engine = new DefaultConfigurationEngine(setting);
                engine.RegisterInterpreter(new XmlConfigurationInterpreter(resource));
    
                IMapperFactory mapperFactory = engine.BuildMapperFactory();
                IDataMapper dataMapper = ((IDataMapperAccessor)mapperFactory).DataMapper;
    
                Account account = dataMapper.QueryForObject<Account>("GetAccountViaResultClass", 1);
    
                Assert.AreEqual(1, account.Id, "account.Id");
                Assert.AreEqual("Joe", account.FirstName, "account.FirstName");
                Assert.AreEqual("Dalton", account.LastName, "account.LastName");
                Assert.AreEqual("Joe.Dalton@somewhere.com", account.EmailAddress, "account.EmailAddress");
            }

        于是按照这个在代码中进行了一下修改,问题果然解决了。回头在翻翻相关文档,补充一下如果在配置文件中进行配置,有知道的也欢迎指出。

        

        这篇文章也有详细的说明:

        http://www.iloveher.cn/ibatis/hybridwebthreadsessionstore.html

        HttpContext的详细说明请查阅:

        http://www.cnblogs.com/fish-li/archive/2013/04/06/3002940.html

  • 相关阅读:
    centos 新增用户, 然后他在主目录添加网站403Forbbiden
    linux 把用户加入一个组&从这个组中移除
    [THINKPHP] 温故知新之getFieldBy
    php 获取指定月份的开始结束时间
    apache 占用内存总量与每个apache进程的平均内存占用量计算
    网站并发300就很慢
    centos定时备份数据库超简单示例
    php导出excel时间错误(同一个时间戳,用date得到不同的时间)
    设置iframe 载入页面的效果跟直接打开这个页面一样
    node基础09:第2个node web服务器
  • 原文地址:https://www.cnblogs.com/wangn/p/4156985.html
Copyright © 2020-2023  润新知