2011-03-04 2 views
0

Windows의 C# 어셈블리를 통해 공유 위치 ("Everyone"에 대한 권한)에 저장된 SQL Server CE 파일 dbLogs.sdf에 액세스하고 있습니다. 서비스.SQL Server Compact ADO.NET 데이터 공급자 : 데이터베이스 파일에 대한 액세스가 허용되지 않습니다.

Visual Studio 2008에서 서비스를 디버깅 할 때 아무 문제없이 .SDF 파일에 액세스하고 있지만 실제로 Windows 서비스를 실행하면 연결을 열려고 할 때 예외가 발생합니다. 오류의 자세한 내용은 다음과 같습니다.

오류 메시지 : 데이터베이스 파일에 대한 액세스는 허용되지 않습니다. [파일 이름 = 공유 \ dbLogs.sdf \ \ 192.168.17.228]

출처 : SQL 서버 컴팩트 ADO.NET 데이터 공급자

스택 트레이스 : System.Data.SqlServerCe.SqlCeConnection.ProcessResults에서 (INT32 시간) LogStat.ProcessLogStats에서 LogStat.GetLogDetails에서 System.Data.SqlServerCe.SqlCeConnection.Open() 에서 System.Data.SqlServerCe.SqlCeConnection.Open (부울 침묵) (문자열 된 LogType)()에서

system.web 섹션의 사용자 이름 및 비밀번호 인증을 가장 한 신원을 app.config 아래로 시도했지만 작동하지 않았습니다.

하지만 콘솔 응용 프로그램에서 동일한 코드를 복사했을 때 아무 문제없이 작동했습니다.

다른 방법으로 윈도우 서비스에서 인증을 제공해야합니까?

답변

0

: 사전에

덕분에 당신은 공유에 대한 액세스 권한이있는 계정으로 윈도우 Servcie를 실행해야합니다.

+0

답장을 보내 주셔서 감사합니다. "속성 -> 로그온 -> 다음 계정 : ->이 계정"에 사용자 이름과 암호를 입력하여 내 창 서비스를 이미 시도했지만 서비스 코드는 다음을 수행 할 수있었습니다. 데이터베이스 파일에 액세스하십시오. 그러나 .SDF 파일이 포함 된 공유 폴더가 "모든 사용자"에게 완전한 사용 권한을 가지고 있습니다. 걱정할 필요가 있습니다. 또한 파일을 작업하는 동안 여러 번 사용 했더라도 ID가 작동하지 않았습니다. 네트워크에. 어떤 생각? – Pawan

+0

일반적으로 네트워크를 통해 sdf 파일에 액세스하는 것은 제한적으로 지원되며 4.0에서 전혀 작동하지 않습니다 – ErikEJ

관련 문제