Sqlite .NET и Entity Framework - «попытка записи базы данных только для чтения» - PullRequest
5 голосов
/ 28 июня 2010

--- edit --- Есть ли какая-либо дополнительная информация, которую я могу дать, чтобы помочь решить эту проблему?

Я пытаюсь начать работу с Sqlite и Entity Framework в .NET WCF.веб-сервис.

Когда я пытаюсь что-либо сохранить в базе данных, я получаю сообщение об ошибке "попытка записи базы данных только для чтения" .Вот полная информация об ошибке:

System.Data.EntityException: ошибка произошла при запуске транзакции на соединении провайдера.Подробности см. Во внутреннем исключении.

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

Попытка записи базы данных только для чтения
в системе.Data.SQLite.SQLite3.Reset (SQLiteStatement stmt)
at [snip] ........................................................> в System.Data.EntityClient.EntityConnection.BeginDbTransaction (IsolationLevel изоляцияLevel) в System.Data.Common.DbConnection.BeginTransaction() в System.Data.EntityClient.EntityConnection.BeginTransaction () в System.Data.Objects.ObjectContext.SaveChanges (Boolean acceptChangesDuringSave) в System.Data.Objects.ObjectContext.SaveChanges () в ...

Вот моя конфигурация EF внутри Web.config (с разрывами строк для удобства чтения):

<connectionStrings>
   <add 
      name="FooEntities" 
      connectionString="metadata=res://*/FooDataModel.csdl|
      res://*/FooDataModel.ssdl|
      res://*/FooDataModel.msl;
      provider=System.Data.SQLite;
      provider connection string='data source=C:\domains\myfoosite.com\wwwroot\FooService\Foo.sqlite'"
      providerName="System.Data.EntityClient" />
<connectionStrings>

Почему я получаю эту ошибку?Почему база данных доступна только для чтения?

Некоторые вещи, которые я пробовал:

  • Гарантировано, что каталог и файл доступны для записи веб-службой.(Я пытался записать текстовые файлы в ту же директорию, что и тест.)

  • Я добавил 'read only = False' в строку подключения.

1 Ответ

3 голосов
/ 04 июля 2010

Оказывается, проблема в настройках безопасности IIS. Мне пришлось включить доступ для записи сценария, и он волшебным образом начал работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...