2010-06-28 3 views
5

--- 편집 ---이 문제를 해결하는 데 도움이되는 추가 정보가 있습니까?Sqlite .NET 및 Entity Framework - "읽기 전용 데이터베이스 작성 시도"

.NET WCF 웹 서비스 내에서 Sqlite 및 Entity Framework를 실행하려고합니다.

데이터베이스에 아무 것도 저장하려고하면 "읽기 전용 데이터베이스 쓰기"오류가 발생합니다.. 여기에 전체 오류 정보는 다음과 같습니다

System.Data.EntityException : 공급자 연결에 거래 를 시작하는 동안 오류 가 발생했습니다. 자세한 내용은 내부 예외를 참조하십시오.

---> System.Data.SQLite.SQLiteException : (읽기 전용 데이터베이스를 SQLiteStatement를 System.Data.SQLite.SQLite3.Reset에서 읽기 전용 데이터베이스
를 작성하는

시도를 작성하는 시도 stmt)
at snip] ......................................... ...............> at System.Data.EntityClient.EntityConnection.BeginDbTransaction (IsolationLevel isolationLevel) at System.Data.Common.DbConnection.BeginTransaction() at System.Data.Objects.ObjectContext.SaveChanges()에서의 15,System.Data.EntityClient.EntityConnection.BeginTransaction() System.Data.Objects.ObjectContext.SaveChanges에서 (부울 acceptChangesDuringSave) ...

<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> 

가 왜이 오류를 받고 있어요 :

여기의 Web.config 내부 (쉽게 읽을 줄 바꿈) 내 EF 구성입니까? 데이터베이스가 읽기 전용 인 이유는 무엇입니까? 내가 해봤

어떤 것들은 :

  • 디렉토리를 보장하고 파일은 웹 서비스에 의해 쓰기 수 있습니다. (나는 는 시험과 같은 디렉토리에 일반 텍스트 파일을 작성 시도했습니다.)

  • 나는 '읽기 전용 = False'로 에 연결 문자열을 추가했습니다.

+1

연결하는 데 사용하는 사용자에게 데이터베이스에 대한 쓰기 권한이 있습니까? Management Studio (또는 동등한 제품)를 사용하여 데이터베이스에 연결하고 작성할 수 있습니까? – ChrisF

+0

흠. 어떤 종류의 자격 증명도 지정하지 않았습니다. Windows 인증 또는 양식 인증을 지정하지 않았습니다. 물론 연결하고 로컬 컴퓨터의 데이터베이스에 쓸 수 있습니다. 나는 웹 서버에 연결을 시도 할 것이다. –

+0

내 이해에서 Sqlite는 Windows 인증 또는 양식 인증을 갖고 있지 않습니다. 단지 단일 파일 데이터베이스 일뿐 서비스가없고 인증도 없습니다. 나는 틀린가? –

답변

3

IIS 보안 설정이 문제가되었습니다. 스크립트 쓰기 액세스를 켜야했고 마술처럼 작동하기 시작했습니다.

+0

동일한 문제가 발생했습니다."스크립트 쓰기 액세스"를 어디에 설정 했습니까? 나는 핸들러를 들여다 보았지만 거기에서 "쓰기"와 "스크립트"중 하나를 선택할 수 있지만 둘 다 선택할 수는 없습니다 (라디오 버튼). –

+1

나는 그것을 이해했다. 필자의 경우 "WebsitePanel"호스트를 통해 구성 할 수있는 IIS 사용자 (IIS_IUSRS)의 파일 시스템에 대한 Windows 수준 쓰기 권한입니다. FTP (chmod)를 통해 구성 할 수도 있지만 시도하지는 않았습니다. –

관련 문제