Подтвердить что ты не робот

Попытка написать базу данных только для чтения - System.Data.SQLite

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

Много информации об этом в Интернете, но ни у кого нет ответа, чтобы решить проблему.

Позвольте мне рассказать мои шаги:

  • Есть сайт на VS2k8, чтобы при отладке или запуске с Cassini все работало нормально
  • При настройке IIS 7.5 (Win7) для указания на этот веб-сайт и после добавления прав на изменение IIS_IUSRS я получаю сообщение об ошибке
  • То же самое, используя IIS 6.0!

Img: Безопасность файла базы данных из IIS 7.5

alt text
(источник: balexandre.com)

Обратите внимание, что все остальные файлы и папки имеют те же права, что и выше

Полная ошибка:

Log: Executing query on SQLite Database

Message ***************************************
Attempt to write a read-only database
attempt to write a readonly database

Stack Trace ***********************************
at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at soDatabaseManager.CommitPersonsToKitchenDatabase() in c:\Adwiza\Kitchen\App_Code\soDatabaseManager.cs:line 242

PS Имейте в виду, что это должно работать и с IIS 6 (Windows 2003), IIS 7.5 предназначен только для устранения неполадок, поскольку у нас больше контроля над всем...

4b9b3361

Ответ 1

Убедитесь, что учетная запись анонимного веб-пользователя (NETWORK SERVICE или может быть что-то еще), под которым выполняется ваше веб-приложение, имеет чтение/запись/создание/удалить доступ к папке, в которой находится база данных sqlite.

Ответ 2

Другой ответ дает мне представление о проблеме, но мое решение было немного иным. Проблема заключалась в том, что у пользователя не было прав на изменение папки и файла .db. Поэтому я предоставляю разрешение пользователю Каждому (коллективная группа для Аутентифицированных пользователей и Гость). Разрешения на СЕТЕВОЙ СЕРВИСЕ (или аналогий) в моем случае не решались.

Примечание. Чтобы загрузить сделанное изменение, после перезапуска IIS необходимо перезапустить.