Violation de partage de files SQL CE pour plusieurs process sur la machine locale

Référence à la question Comment puis-je partager un file de database SQL Server CE (.sdf) pour plusieurs process?

Selon MSDN, SQL CE autorise 256 connections simultanées à database unique.

Mais même sur la même machine, je fais face à l'erreur de violation de partage lorsque j'ouvre la même database MAIS avec 2 process différents (a.exe & b.exe, le code est le même). Quel semble être le problème ici?

J'utilisais une string de connection

SqlCeConnection("Data Source=d:\test.sdf;Encrypt Database=True;Password=test;File Mode=read write;") 

Ce n'est pas la réponse que vous voulez entendre, mais vous ne devriez jamais essayer d'ouvrir un file SQL CE à partir de plusieurs process. Oui, je sais, SQL CE 4.0 permet plusieurs auteurs, et vous pensez que vous n'aurez jamais plusieurs écrivains qui écrivent sur le même logging, mais c'est comme penser qu'il est sûr de jongler avec des tronçonneuses enflammées tant que vous portez un bandeau.

SQL CE modifie les octets modifiés dans le file de données en direct. Vous ne pouvez pas le faire de manière fiable à partir de plusieurs process. Vous pensez que vous pouvez, mais vous ne pouvez pas. Lisez la réponse acceptée à la question que vous avez citée; utilisez une database orientée services telle que SQL Express.

Dans mon cas, le file était en quelque sorte verrouillé. J'utilisais TFS en ligne et le file sdf était en mode verrouillé / édition, même si j'avais extrait le file et supprimé l'indicateur en lecture seule de l'atsortingbut de file.

Pour le réparer, j'ai dû ouvrir l'explorateur de contrôle de source tfs et enlever le verrou.

Assurez-vous que le file n'est pas verrouillé.

Note: Ceci est un ancien article, mais j'ajoute seulement cette réponse afin qu'elle puisse être utile à quelqu'un qui fait face à ce problème.