2009-03-02 6 views
21

우리는 서버에서 .NET 2.0 응용 프로그램 (C#)의 로컬 시스템으로 파일을 복사하려고하지만 소스 파일을 불필요하게 잠그고 있습니다. 파일 서버에이 동작을 일으키는 구성 요소가있는 것 같지만 무엇이 도움이 될지 모르겠습니다.File.Copy는 완료 후 소스 파일을 잠급니다.

파일 복사 작업 후 파일 서버 (Windows 2K3 R2)는 서버에서 파일 작업을 더 이상 수행하지 않아도 원본 파일이 읽기 잠금으로 유지되고 있다고보고합니다. 응용 프로그램이 종료되면 잠금이 해제됩니다.

우리는 심지어 가장 기본적인 코드는 아래와로, 동작을 재현 할 수 있습니다 :

static void Main(string[] args) 
{ 
    string sourceFile = @"\\win2K3server\resource\Production\IQE\sourceFolder\iqeconsole.exe"; 
    string destinationFile = @"d:\destinationFolder\iqeconsole.exe"; 
    System.IO.File.Copy(sourceFile,destinationFile,true); 

    Console.ReadLine(); 
} 

자물쇠는 실행 File.Copy() 라인 중 즉시 발생했을,이 라인이 완료된 후 지속. 더 복잡한 응용 프로그램에서 File.Copy()을 가진 루틴이 종료 될 때 (그러나 응용 프로그램은 여전히 ​​실행 중일 때) 잠금이 유지됩니다.

전체 응용 프로그램이 완료되었을 때만 잠금이 해제됩니다.

을 변경하면 UNC 경로 대신 매핑 된 드라이브를 사용하여 동작이 변경되지 않습니다.

소스 파일이 다른 서버에 있거나 로컬에있는 경우에는이 문제가 발생하지 않습니다. 우리가 File.Copy 후 다음 줄을 추가하는 경우

, 잠금은 즉시 해제 :이 동작의 원인이되는 서버에 뭔가가있는 것처럼

new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.Read, new string[] { sourceFile }).Demand(); 

이 우리 모두에게 들린다. 우리는 McAfee 안티 바이러스와 함께 서버에 ShadowProtect를 설치했습니다. 그 외에도 Windows Server와 그 구성 요소가 이상 설치되어있는 것처럼 보입니다.

왜 파일에 대한 읽기 권한 요구가 문제를 해결하는지 확신 할 수 없습니다. 당신이이 질문에 대답 할 수 있다면

, 우리는 크게 감사하겠습니다 : 지속하기 위해 파일 잠금의 원인이 무엇

  1. ?
  2. 왜 읽기 권한 요구가 문제를 해결합니까?
+0

업데이트 :이 문제는 더 이상 재현 할 수 없습니다. 그것은 스스로 해결 한 것으로 보인다. McAfee에서 문제의 원인을 확인하지 못했습니다 (그러나 조사하는 동안 문제가 해결 될 수 있습니다). – Jayden

+1

@Jarden : File.Copy와 같은 문제가있었습니다. File.Copy() 다음에 나오는 명령문이 Delete 인 경우 Exception에 대한 액세스가보고됩니다. 문제는 비 결정적으로 발생했지만 위의 Demand() 메서드로 문제가 해결되었습니다. 내가 아는 바로는이 문제는 바이러스 백신 소프트웨어와 별개입니다. – PanJanek

+0

나는 똑같은 문제가 있지만 McAfee, Im AVG를 실행하는 것은 아닙니다.하지만 파일 montior가 비활성화되어 있습니다. 언락 (Unlocker)을 사용하여 파일을 잠그고있는 것을 말해 주며 그것이 내 응용 프로그램이라는 데 동의합니다. 그래서 나는 배심원이 아직도 밖에 나온다고 생각한다 !! 그러나 귀하의 솔루션을 구현하면 내 문제를 해결하므로 시간이 내 행복 –

답변

4

아마도 잠금 장치가있는 McAfee 온 액세스 스캐너 일 수 있습니다. 읽기 액세스 만 사용하면 무시됩니다. Sysinternals Process Viewer 도구 (Microsoft에서 무료)를 사용하여이를 확인할 수 있다고 생각합니다.

McAfee에 대한 가입 정보를 잘 모르지만이 파일을 검사하지 않도록 예외 규칙을 정의 할 수 있습니다.

+0

안녕하십니까. 감사합니다. 현재이 문제를 조사 중입니다. – Jayden

+0

기록을 위해 프로세스 뷰어를 사용하여 문제인지 확인할 수 없습니다. 서버에 아무런 영향을주지 않는다고하더라도 서버 자체가 신비하게 해결 된 것 같습니다. 당신의 대답은 "최고"였으므로 점수를 받았습니다. 당신의 도움을 주셔서 감사합니다. – Jayden

+0

감사합니다. McAfee는 여전히 파일을 복사 한 후 정기적으로 실행하므로 좋은 후보자입니다. McAfee On Access Scanner를 제거한 다음 파일을 삭제할 수 있습니다. – cdonner

0

파일 서버에서 복제 할 수 없습니다.

그러나 PeerSoftware에서 PeerLock을 사용하고 있으므로 기회 주의적 잠금이 해제되어 있습니다.

관련 문제