2009-05-06 1 views
0

내가하는 모든 일은 서버간에 파일을 복사하는 서비스를 얻는 것으로 보입니다. 나는 많은 보안을 얻는 것처럼 보입니다. & securityaccess 유형의 예외는 결코 원인을 완전히 이해하지 못합니다. fileinfo 또는 file.copy가 좋은 해결책인지 또는 더 좋은지 궁금합니다. 이 오류를 피하기 위해 사용해야하는 특정 속성이 있습니까? 문제는 계정이나 비밀번호와 관련이 없습니다. 예를 들면 도메인 계정을 사용하는 \ ipaddress \ sharename \ ipaddress \ drive \ path입니다.FileInfo.Copy 네트워크 좋은 솔루션인가? CAS가 필요합니까?

은 --- 구체적인 예를 추가 .---
을 - 나는 서버 같은 도메인 \ 사용자 이름에 로그온합니다. (도메인 이름 포함)
- 주소 표시 줄에 파일 eplorer을 엽니 다. \\ 서버 B \ c $ \ 폴더를 입력하고 마우스 오른쪽 버튼을 클릭하여 새 파일을 만듭니다. 문제 없어.
- 서비스를 설치하고 속성으로 이동하여 로그온,이 계정을 선택하고 사용자 이름을 도메인 \ 사용자 이름 (도메인 이름 포함)으로 설정합니다. 서버에 로그온 한 것과 동일한 암호 with. 그것은 아무런 문제가 없다.
응용 프로그램이 \\ 서버 에서 FileSystemWatcher를 실행하고 구성 파일을 동기화 상태로 유지하도록 변경하면 \ 012 서버의 B으로 복사하십시오.

private void CopyNewFileToClone() 
{ 
    FileInfo OriginalConfigFile = new FileInfo(Path.Combine(ConfigurationManager.AppSettings.Get("directoryToWatch"), ConfigurationManager.AppSettings.Get("fileToWatch"))); 
    FileInfo CloneConfigFile = new FileInfo(Path.Combine(ConfigurationManager.AppSettings.Get("directoryToCopyTo"), ConfigurationManager.AppSettings.Get("fileToCopyTo"))); 
    FileInfo tmp = new FileInfo(Path.Combine(CloneConfigFile.DirectoryName,"~" + CloneConfigFile.Name)); 

    OriginalConfigFile.CopyTo(tmp.FullName, true); 
    tmp.CopyTo(CloneConfigFile.FullName, true); 
    tmp.Delete(); 
} 

서비스를 시작할 때 서비스를 시작할 수 없습니다.
System.UnauthorizedAccessException : '\\ server B \ C $ \ folder \ filename'경로에 대한 액세스가 거부되었습니다.

답변

0

이것은 코드 액세스 보안 정책 때문이었습니다. 란
c:\Windows\Microsoft.NET\Framework\v2.0.50727\CasPol.exe -af <path\application.exe>
및 오류가 해결되었습니다.

특히 \ server \ share \ file과 같이 unc를 통해 네트워크를 통해 HD로 작성해야하는 모든 앱에 설치 단계로 추가하십시오.

1

fileinfo를 사용하여 서버에서 파일을 복사하면 제대로 작동하는 것 같습니다. 계정 또는 비밀번호 문제가 아니라고 확신하는 경우 DNS를 살펴보기 시작할 것입니다. 네트워크에서 네트워크 폴더에 액세스하려는 계정을 확인할 수없는 경우 유효한 계정을 사용하고 있는지 여부는 중요하지 않습니다. 캐시 된 계정으로 거의/대부분의 시간을 운 좋게 얻을 수는 있지만 작동하지 않을 때와 작동 할시기는 없습니다.

실패한 응답에 대한 브로드 캐스트 메시지가 많이 발생하는 경우 네트워크를 추적합니다.

관련 문제