SqlServerCe 4.0 «База данных уже открыта другим пользователем» Ошибка - PullRequest
1 голос
/ 22 сентября 2011

Я работаю с базой данных SqlServerCe 4.0, расположенной в папке / App_Data / приложения Asp.Net - в этом случае размещенной в IISExpress через WebMatrix.Доступ к базе данных также осуществляется из расширения Microsoft WebMatrix, которое выполняется в процессе WebMatrix.exe.Либо расширение WebMatrix, либо приложение Asp.Net могут нормально обращаться к базе данных, если каждый обращается к ней первым - в случае, когда приложение, открывающее приложение, открывает соединение вторым, возвращается следующая ошибка:

Database already opened by a different user. [ Db name = ... ] :    at System.Data.SqlServerCe.SqlCeConnection.ProcessResults(Int32 hr)
   at System.Data.SqlServerCe.SqlCeConnection.Open(Boolean silent)
   at System.Data.SqlServerCe.SqlCeConnection.Open()

Код, открывающий соединение с расширением WebMatrix:

SqlCeConnection conn = new SqlCeConnection("DataSource=" + dbPath + "\\App_Data\\db.sdf");
conn.Open();
SqlCeCommand cmd = new SqlCeCommand("select ...", conn);
SqlCeDataReader r = cmd.ExecuteReader();

, который выдает исключение в строке conn.Open () .

Я использую последнюю версию SqlServerCe 4.0 bit и пробовал запустить WebMatrix с правами администратора, но результат соответствует приведенному выше.Для этого очень мало полезных результатов.

-Paul

...