Por que eu recebo erro de compartilhamento de arquivos Se o SQL Compact permite várias conexões?
-
06-07-2019 - |
Pergunta
Aqui , diz-se que o SQL Server Compact permite que até 256 ligações.
Mas quando eu tento abrir 2 conexões, recebo um erro de compartilhamento de arquivos. Como posso resolver isso?
SqlCeConnection c1 = new SqlCeConnection("Data Source=testDB.sdf;Encrypt Database=True;Password=test;File Mode=shared read;Persist Security Info=False;");
SqlCeConnection c2 = new SqlCeConnection("Data Source=testDB.sdf;Encrypt Database=True;Password=test;File Mode=shared read;Persist Security Info=False;");
c1.Open();
c2.Open(); // throws SqlCeException
c1.Close();
c2.Close();
Há uma violação de compartilhamento de arquivos. Um processo diferente pode estar usando o arquivo. [TestDB.sdf]
Solução
Esta era uma questão de seqüência de conexão.
File Mode=Read Write
resolveu o problema.
Outras dicas
Ao examinar este problema, eu encontrar alguns recursos e este post. Talvez alguém vai precisar dele, por isso deixo o que eu encontrar aqui.
de acordo com o MSDN disse , se não File Mode
atribuído, ele usará Read Write
por padrão.
E, se a necessidade de abrir um db Read Only
, este post disse que dois parâmetros devem ser atribuídos . Um deles é File Mode
, e um é Temp Path
.