SQL Compact Edition 3.5 - Доступ к файлу базы данных запрещен

Я разработал приложение (100% локальное, без доступа к серверам), используя SQL Server Compact 3.5, и он отлично работает на моем компьютере. Однако, когда я развернул его на другом компьютере, он показывает эту ошибку:

Access to the database file is not allowed. [ File name = data\BDApepucCE.sdf ]

Я развернулся на компьютере под управлением Windows XP. Он показывает эту ошибку, когда я пытаюсь писать в базе данных, однако она работает, когда я читаю.

Я выполнил тест на компьютере под управлением Windows 7, и он работал на 100%, за исключением случаев, когда доступ к файлу осуществлялся через домашнюю группу (то есть локальную сеть), на которой он не работал как при чтении/записи.

Платформа: Windows 7, Visual Studio 2010 и . Профиль клиента NET 4

Ответы

Ответ 1

Убедитесь, что вы используете |DataDirectory| в строке подключения. Вот пример

connectionString="Data Source=|DataDirectory|MyDB.sdf"

У меня была такая же проблема, как и вы, и мне удалось исправить ее, добавив | DataDirectory | к моей строке подключения.

Удачи.

Ответ 3

У меня также была такая же проблема. Мое решение было в TFS/SourceControl в то время, когда я развернул его, и файл sdf был зарегистрирован (то есть только для чтения), и это вызвало ту же ошибку, что и выше. Когда я проверил файл sdf и развернулся снова, все было в порядке. Думаю, я поделился бы этим, если другие пользователи TFS будут испытывать ту же проблему.

Ответ 4

Вот еще два предложения:

  • Попробуйте запустить Visual Studio как администратор
  • Проверьте, установлен ли атрибут 'readonly' в файле sdf

Ответ 5

Также вы можете проверить и посмотреть, использует ли ваш пул приложений сетевой сервис (не пул приложений), а разрешения сетевой службы - полный контроль в папке AppData. Это была моя проблема некоторое время назад, и я забыл, как я это сделал, но этот вопрос напомнил мне, как я это сделал.

Ответ 6

Вам просто нужно сделать "Server Side Includes" разрешенным в меню IIS "Расширения веб-сервисов"

который исправил все мои проблемы.

Ответ 7

Для меня работало следующее решение:

"Программные файлы" в Windows защищены, поэтому обычные пользователи не могут писать там ваши приложения, вероятно, будут работать только с администратором пользователь.

Измените путь папки данных для своей базы данных где-нибудь, где все пользователи имеют разрешение на запись.

Ответ 8

Это не будет типичной причиной, но я столкнулся с этим сообщением об ошибке, когда строка подключения имела неправильный путь к файлу SDF CE. Как только я установил, что ошибка исчезла.

Ответ 9

Просто запустите приложение как администратор. Я решил свою проблему, используя это.