【发布时间】:2010-08-29 15:04:51
【问题描述】:
我在这里遵循示例:http://developer.db4o.com/Forums/tabid/98/aft/10114/Default.aspx 使用 HttpModule 使用 db4o 设置我的 MVC2 应用程序。我还打开了一个 LINQPad 实例,以便在开发时查询数据。 Web 应用程序似乎很有吸引力,但 LINQPad 不断收到 DatabaseFileLockedExceptions,直到我关闭 Web 服务器。
正如我所说,我实际上是逐字使用 Gamlor 的 HttpModule(使用 ClientServer 而不是嵌入式是唯一的区别),这是我的 LINQPad 代码:
01 void Main()
02 {
03 using(var server = Db4oClientServer.OpenServer(db4opath, 0))
04 {
05 using(var db = server.OpenClient()){
06 var result = (from Object o in db select o);
07 result.Dump();
08 }
09 }
10 }
11
12 private string db4opath = @"C:\blah\blah\blah\blah.db4o";
如果网络服务器没有运行,LINQPad 代码可以正常工作。
我做错了什么?
【问题讨论】:
-
你能确定哪个文件被锁定了吗?网络服务器是否在您尝试连接时锁定了数据库文件? ProcMon 或 FileMon,可能与 ProcExp 的句柄侦听功能相结合,在这里可能很有用。
-
是的,在这种情况下只有一个文件,“blah.db4o”。我很确定网络应用程序正在锁定 LINQPad,但它不会锁定其他网络线程,所以我认为我没有正确关闭文件或其他什么......
标签: asp.net-mvc asp.net-mvc-2 httpmodule db4o linqpad