【问题标题】:C# windows service is still running but non-responsiveC# windows 服务仍在运行但无响应
【发布时间】:2014-01-09 10:18:45
【问题描述】:

我在服务器中创建了 c# 窗口服务。其中有sqlite数据库。客户端机器使用 c# windows 窗体应用程序连接到服务器并从服务器数据库获取数据。 因此,首先客户端应用程序使用 http 请求登录到服务器。服务器接收请求并将数据发送回客户端。

但有时即使服务正在运行,服务器也没有响应客户端,客户端也无法连接到服务器。后来我重新启动服务,然后它连接。

System.Data.DataSet rdr = db.ExecuteDataSet(@"
                select i.id
                from item i,field f
                where i.typeid=1 and
                    f.value like '" + UserName + "' and i.id=f.itemid");

            if (rdr.Tables[0].Rows.Count == 0)
            {

                rdr = null;
                return false;
            }



public DataSet ExecuteDataSet(String sqlExpr)
        {
            if (conn.State != ConnectionState.Open)
                Open(DataFile);


                SQLiteDataAdapter _adapter = new SQLiteDataAdapter(sqlExpr, conn);
                DataSet ds = new DataSet();
                _adapter.Fill(ds);

                return ds;

        }

上面是登录的代码。有什么东西阻塞了db。请帮我解答您的宝贵意见。

问候 桑吉萨

【问题讨论】:

  • 您是否使用 HTTP Fiddle 之类的代理跟踪了 HTTP 请求?你做了什么来确定是数据库查询需要很长时间?
  • 您是否从代码中捕获和处理异常?

标签: c# windows-services


【解决方案1】:

我不确定,但是,如果登录正常,问题似乎是服务器中的错误,当您使用 de sqlite 打开连接时,您在使用后关闭它? sqlite有一些程序可以在睡眠中终止连接吗?

其他的,你用过component.dispose()吗?因为如果你不处理组件,它们会继续使用内存。

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多