2009-11-23 5 views
0

VS.net 2008을 사용하여 작성된 매우 간단한 VB.net Windows 서비스가 있습니다. 다른 여러 기능을 수행 한 후 프로그램이 네트워크 폴더 중 하나에 로그를 기록합니다. 코드는 다음과 같습니다. "Y : \ Activity_Log"에서 "C : \ Activity_Log"로 경로를 변경하면 매력처럼 작동합니다.Windows 서비스가 매핑 된 폴더에 액세스 할 수 없음

유효한 Y 드라이브를 사용하고 다른 VB.net 데스크톱 응용 프로그램에서 액세스 할 수있는 경우 문제가 생깁니다. 도와주세요.

Dim strFile As String = "Y:\Activity_Log\" & DateTime.Today.ToString("dd-MMM-yyyy") & ".txt" 
     Dim fs As FileStream = Nothing 
     Dim activityfolder As String = "Y:\Activity_Log" 
     Dim di As System.IO.DirectoryInfo 

     di = New System.IO.DirectoryInfo(activityfolder) 

     If (Not di.Exists) Then 
      di.Create() 
     End If 


     If (Not File.Exists(strFile)) Then 
      Try 
       Dim sw1 As New StreamWriter(File.Open(strFile, FileMode.OpenOrCreate)) 
       sw1.WriteLine("******************************Activity Log for " & Now.Date & "*******************") 
       sw1.WriteLine("-----------------------------------------------------------------------------------------------------------------") 
       sw1.WriteLine(Remarks & " ---" & DateTime.Now) 
       sw1.Close() 
      Catch ex As Exception 

      End Try 

     Else 
      Dim sw As StreamWriter 
      sw = AppendText(strFile) 
      sw.WriteLine(Remarks & " ---" & DateTime.Now) 
      sw.Close() 

     End If 

답변

4

시작 -> 제어판 -> 관리 도구 -> 서비스

, 바로 이름을 클릭 목록에서 서비스를 찾아 속성

탭에서 현지에서

변경 로그를 클릭합니다 '이 계정'

사용하는 공유에 대한 액세스 권한이있는 사용자에게 시스템 계정이 작동하는지 자신을 설득하기 위해 사용자 이름/비밀번호로 시작)

확인을 클릭 한 다음 서비스를 다시 시작하십시오.

+0

션, 귀하의 제안에 감사드립니다. 로그인 세부 정보를 지정하고 서비스를 다시 시작했습니다. 아직 작동하지 않습니다. 이 네트워크 폴더뿐 아니라 아무 것도 아닙니다. 이것에 대한 해결책을 제시 할 수 있다면 정말 고맙겠습니다. – acadia

+0

이벤트 뷰어 또는 파일에 던지는 예외를 기록하여 액세스가 거부되는 이유를 파악할 수 있습니다. 아마 그것은 단지 허가와 관련이 있다고 가정합니다. – Sean

3

어쩌면 해당 드라이브에 대한 액세스 권한이있는 사용자로 서비스를 실행해야합니까?

아마도 일반 서비스 사용자는 액세스 권한이 없습니다.

+0

Fredou, 지금 서비스가 내 컴퓨터에서 실행 중입니다. 그런 경우에도 네트워크 드라이브에 액세스 할 수 없습니다. – acadia

+0

서비스가 다른 사용자로 실행됩니다. 매핑 된 드라이브의 사용 권한이 모두에게 표시되도록 설정되어 있는지 확인해야합니다. –

관련 문제