Почему я получаю ошибку общего доступа к файлам, если Sql Compact допускает несколько подключений?

StackOverflow https://stackoverflow.com/questions/427888

  •  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 .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top