Je suis l'exemple ici: http://developer.db4o.com/Forums/tabid/98/aft/10114/Default.aspx pour configurer mon application MVC2 avec db4o en utilisant un HttpModule. J'ai aussi une instance LINQPad ouverte pour interroger les données au fur et à mesure de mon développement. L'application Web semble fonctionner comme un charme, mais LINQPad continue à obtenir des exceptions DatabaseFileLocked jusqu'à ce que je ferme le serveur Web.DatabaseFileLockedException me rend fou
Comme je l'ai dit, j'utilise le HttpModule de Gamlor pratiquement mot à mot (en utilisant ClientServer au lieu de incorporé est la seule différence), et voici mon code 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";
Le code LINQPad fonctionne très bien si la Le serveur Web n'est pas en cours d'exécution.
Qu'est-ce que je fais mal?
Êtes-vous en mesure de déterminer quel fichier est verrouillé? Le serveur Web verrouille-t-il les fichiers de la base de données pendant que vous essayez également de vous connecter? ProcMon ou FileMon, peut-être couplé avec la fonctionnalité d'espionnage des poignées de ProcExp, pourrait être utile ici. –
ouais il n'y a qu'un seul fichier, "blah.db4o" dans ce cas. Je suis à peu près sûr que l'application web verrouille LINQPad, mais elle ne bloque pas les autres threads web, donc je pense que je ne ferme pas le fichier correctement ou quelque chose ... –