2010-06-07 3 views
2

Windows 7 컴퓨터에 C# Windows 서비스를 성공적으로 배포했습니다. 이제C# 폴더에 쓸 때 Windows 서비스 액세스가 거부되었습니다.

,이 코드를 사용하여 파일을 만들려고 할 때 :

FileStream os = new FileStream(String.Format(folderName, fileName), FileMode.Create); 

내가 파일 경로에 접근이 거부되었습니다. 서비스 설치에서

난에 다음 매개 변수를 설정 : 내가 파일을 만들려면 아무것도 도움이되지 폴더에 대한 전체 권한을 가진 모든 가능한 계정을 추가

this.serviceProcessInstaller1.Account = 
     System.ServiceProcess.ServiceAccount.LocalSystem; 
    this.serviceProcessInstaller1.Password = "Pass"; 
    this.serviceProcessInstaller1.Username = "Administrator" 

.

모든 제안은 매우 당신은 잘못된 방법으로 String.Format()을 사용하고

+0

관리 도구의 서비스 대화 상자에서 서비스에서 사용하는 사용자 계정을 확인 했습니까? –

답변

0

을 감상 할 수있다. msdn http://msdn.microsoft.com/en-us/library/fht0f5be.aspx을보십시오.

당신은 아마

FileStream os = new FileStream(folderName [email protected]"\" + fileName, FileMode.Create); 

또는

FileStream os = new FileStream(String.Format(@"{0}\{1}", folderName fileName), FileMode.Create); 

또는

FileStream os = new FileStream(Path.Combine(folderName fileName), FileMode.Create); 
+1

'Path.Combine'. – SLaks

+0

"folderName"에 저장된 내용을 모른 채로 사용법이 잘못되었다고 말할 수 없습니다. 예 : string folderName = "c : \ user \ {0}"; \\ 완벽하게 정상적으로 작동합니다. –

+0

@Amby, 그 이름을 가진 변수에는 합당하지 않습니다. – brickner

0

같은 대답되지 않을 수 있습니다합니다. 그러나 먼저 서비스가 액세스하려고하는 정확한 경로를 기록하십시오. 그런 다음 서비스에 제공 한 자격 증명을 사용하여 시스템에 로그온하고 해당 경로에 액세스를 시도하십시오.

string fullPath = String.Format(folderName, fileName); 
logger.Write(fullPath); 
FileStream os = new FileStream(fullPath, FileMode.Create); 
+0

위에서 제안한대로 Path.Combine()을 사용했습니다. 감사. –

관련 문제