Почему я получаю ошибку общего доступа к файлам, если Sql Compact допускает несколько подключений?
-
06-07-2019 - |
Вопрос
Здесь говорится, что Sql Server Compact позволяет до 256 подключений.
Но когда я пытаюсь открыть 2 соединения, я получаю сообщение об ошибке обмена файлами. Как я могу решить это?
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();
Произошло нарушение совместного доступа к файлам. Возможно, файл использует другой процесс. [testDB.sdf]
Решение
Это была проблема строки подключения.
File Mode=Read Write
решил проблему.
Другие советы
При рассмотрении этой проблемы я нахожу некоторые ресурсы и этот пост. Может, кому-то это понадобится, поэтому я оставляю то, что нахожу здесь.
Согласно MSDN , если File Mode
не назначен, по умолчанию будет использоваться Read Write
. Р>
И, если необходимо открыть базу данных Только для чтения
, в этом посте сказано, что нужно назначить два параметра . Один из них - File Mode
, а второй - Temp Path
.