有个问题 无意中 偶尔 会遇到这样情况 释放释放连接 SQLITE 返回

求助
18 275
该叫什么 John 发布于2019/6/11
悬赏:0 飞吻

我也不知道为什么 正常使用 用在网站上 ,似乎出现无法释放链接  请问有什么办法  对这样的链接进行合理的关闭不?

一直提示我的iis那个 w3wp.exe 占用我我 sqlite 数据库文件一直被它占用 说明 我们使用过后没成功释放嘛


知道说明问题引起嘛 ? 老大


 using (var db = Aleseocore.Module.siteitem.Main.Base.GetInstance(root.siteconfig.host))

                    {

                        for (int i = 0; i < muluclassitems.Count; i++)

                        {

                            var muluclassitem = muluclassitems[i];

                            db.Insertable(muluclassitem).ExecuteCommand();

                        }

                    }

sugarsql bug1.png

热忱回答18

  • 把开发工具退掉

    0 回复
  • 和orm没关系

    0 回复
  • John John VIP0
    2019/6/12

    @fate stay night:这个是 IIS 上面的进程 不是开发 vs 工具占用 我不知道哪里引起的...

    0 回复
  • John John VIP0
    2019/6/12

    @fate stay night:有没啥办法 可以知道 这个文件被哪些进程链接它了..就是被链接的这个数据库文件.有点尴尬我一直没法找到这个问题的原因,主要是丢到网站上 不好排查调试..我一定得停止IIS才行

    这个文件才能被删除.

    而且..我停止网站应用程序池也没用!

    0 回复
  • John John VIP0
    2019/6/12

    @fate stay night


    using (var db = Aleseocore.Module.siteitem.Main.Base.GetInstance(root.siteconfig.host))

                        {

                            db.Insertable(muluclassitems).ExecuteCommand(); 

                        }


    我就执行我这段 插入代码 确实会 造成  w3wp.exe 占用数据库文件 按道理就应该被释放了的..我很纳闷.


    0 回复
  • John John VIP0
    2019/6/12

    执行 这个 db.Close(); 一样 无法释放.

    0 回复
  • John John VIP0
    2019/6/12

    我不太确定这个数据库连接原理 我很担心 网站性能问题 所以我很注重这个细节 老大 看到请 科普下我的疑难解答 按照我的思路 是 using 一个对象 用完了 你就自动释放 也就是说 程序就完整执行完一段代码 并且 让内存回收了垃圾了 也就不会存在所谓的 被占用问题了.

    可是我代码执行完也执行了 db.Close();  按我的思路就是 程序就不会占用了这个数据库的文件 可是为为什么 这个 还是这样一直被占用 我很纳闷 .....

    请 老大们 解答下我的疑问...


    0 回复
  • 你的开发工具是不是连到库上面了,colse就是 sqliteconnection.close

    0 回复
  • 我给你网上找了个答案 https://blog.csdn.net/xiaoyong_net/article/details/25036631 不过我认为你没必要加上,因为这样会影响你的性能,占用就占用呗

    0 回复
  • John John VIP0
    2019/6/13

    @fate stay night:开发工具 没有连接啊 如果是开发工具 vs连接到数据库 那就不是 提示这个  w3wp.exe 占用 那就应该是我的vs2017提示被占用的问题的啊.

    我单步调试过了...再insert数据的时候 执行完了 我们的 iis  w3wp.exe 会一直占用


    但是我不太清楚它这个运行连接的机制的原理 ..

    难道它是一个进程一个连接池嘛  那我们这个 有没有 一个自动释放的方法呢 你上面这个链接我怕 我一清理所有的连接池都清理掉了 那么多线程的情况下  其它的链接不就挂掉了吗 


    所以我现在好懵逼啊 是不是每次打开一次就一个连接池就产生 

    好困惑哇..


    0 回复
  • John John VIP0
    2019/6/13

    你这个 开源的 库挺好的 等我回国了 给你打赏下 

    我第一天就打赏 但是打赏不上


    微信一直提示 我 你的账户注册地或使用地暂不支持微信支付功能


    无语 ...回国了 我记得打赏下 开源希望做得越做越好 我打赏两次都打赏不上去

    0 回复
  • 谢谢老板

    0 回复
  • John John VIP0
    2019/6/13

    @fate stay night


    sqlite文件被占用,如何解决


    已经关闭了数据库连接也无效,经过验证需要需要清除连接池,才可以彻底解决文件被占用的问题:

     conn.Close();
     System.Data.SQLite.SQLiteConnection.ClearAllPools();  

    这个现在 

    SqlSugar

    有临时的解决方案么 怎么执行,让它清除连接池呢..我每次测试我都得去手动停止 IIS 才能把文件删除...


    0 回复
  • John John VIP0
    2019/6/17

    我去 可以了

     System.Data.SQLite.SQLiteConnection.ClearAllPools();

    一定要在当前进程程序执行...


    0 回复
  • John John VIP0
    2019/6/17

    @fate stay night

    我去 可以了

     System.Data.SQLite.SQLiteConnection.ClearAllPools();

    一定要在当前进程程序执行...


    0 回复
  • John John VIP0
    2019/6/17

    @fate stay night:不行 无语了 怎么现在一过又不行了

    0 回复
  • John John VIP0
    2019/6/17

    @fate stay nightdb.Insertable(muluclassitems).ExecuteCommand(); 应该就是这个Insertable方法引起的 老大你查下到底什么问题 这次出问题 没有insert进去 一直提示被占用.添加数据也不成功

    0 回复
  • John John VIP0
    2019/6/18

    @fate stay night目前 找到一个临时性 解决办法 回收程序池 ..

    0 回复

版块

学习文档

最新会员

发布达人

回贴达人