我想我的问题暂时解决了......我将我的服务和测试应用程序更改为SYSTEM帐户而不是NetworkService帐户.更改用户帐户的好处是否会持续存在,或者只是暂时性的,还有待观察.
我注意到我的小型224kB SQLite数据库在我的C#应用程序中打开非常慢,从一些小的ms到1.5秒或更长时间.下面是我的代码,以及我今天下午添加的所有额外调试语句.我把它缩小到调用,cnn.Open();如下面的日志所示:
2014-03-27 15:05:39,864 DEBUG - Creating SQLiteConnection...
2014-03-27 15:05:39,927 DEBUG - SQLiteConnection Created!
2014-03-27 15:05:39,927 DEBUG - SQLiteConnection Opening...
2014-03-27 15:05:41,627 DEBUG - SQLiteConnection Opened!
2014-03-27 15:05:41,627 DEBUG - SQLiteCommand Creating...
2014-03-27 15:05:41,627 DEBUG - SQLiteCommand Created!
2014-03-27 15:05:41,627 DEBUG - SQLiteCommand executing reader...
2014-03-27 15:05:41,658 DEBUG - SQLiteCommand executed reader!
2014-03-27 15:05:41,658 DEBUG - DataTable Loading...
2014-03-27 15:05:41,767 DEBUG - DataTable Loaded!
Run Code Online (Sandbox Code Playgroud)
如您所见,在这种情况下,打开连接需要1.7秒.我试过重复这个,无法预测后续连接是否会立即打开,或者像这样延迟.
我考虑过使用某种形式的连接池,但是对于单实例单线程应用程序来说,这是值得的吗?现在,我正在创建一个SQLiteDatabase类的实例,并为每个查询调用以下函数.
public DataTable GetDataTable(string sql)
{ …Run Code Online (Sandbox Code Playgroud)