Я тестирую свое приложение в учетной записи Windows 7 без прав администратора. Приложение устанавливается в файлы программы. Это включает в себя файл .sdf, который мне нужно прочитать. У меня есть строка подключения, помеченная как только для чтения, и я установил временный путь к своим документам. Это ошибка, которую он выдает, когда я пытаюсь сделать connection.Open()
Внутренняя ошибка: не удается открыть область общей памяти.
У меня есть строка подключения, определенная в app.config, но я изменяю ее, прежде чем начать использовать подключение. Эта часть находится в app.config Data Source=|DataDirectory|\DB.sdf;Password=password;
И затем я изменяю его так:
connection = new SqlCeConnection(connectionString +
";Mode=Read Only; Temp Path=" + Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
Это работает на моей машине разработчика (очевидно), поскольку она работает вне каталога, доступного только для чтения. Но даже когда я вручную помечаю файл .sdf как доступный только для чтения, он все еще работает и успешно создает временный файл базы данных в правильной папке. Однако на тестовой машине все находится в папке с программными файлами, доступной только для чтения, и это не работает.
Основная цель этой проблемы - попытаться убедиться, что мою программу не нужно запускать от имени администратора, и я хотел бы не перемещать основную копию файла db из-за пределов каталога установки.
Дайте мне знать, если мне нужно объяснить что-то еще. Спасибо