네트워크 공유 드라이브에 있는 .Net 4.0 exe의 캐시된 복사본을 사용하는 Windows 클라이언트

네트워크 공유 드라이브에 있는 .Net 4.0 exe의 캐시된 복사본을 사용하는 Windows 클라이언트

.Net 4.0 실행 파일이 있습니다(MyProg.exe) 및 XCopy를 사용하여 네트워크 공유에 배포된 관련 dll. MyProg.exe 및 해당 dll은 모두 서명되지 않았습니다.

여러 사용자가 동일한 버전의 프로그램을 사용하고 프로그램을 쉽게 업데이트할 수 있도록 네트워크 공유에 설치했습니다. 이는 수년 동안 많은 고객에게 효과적이었습니다.

최근 고객의 경우 Windows Server 2012 가상 머신의 폴더가 네트워크 폴더로 공유됩니다. 사용자는 다른 터미널 서버(Windows Server 2012)에서 프로그램을 실행합니다.

우리가 업데이트했을 때MyProg.exe(1.0에서 버전 2.0으로) 터미널 서버는 다시 시작될 때까지 새 실행 파일을 실행하지 않습니다. 해당 exe를 더 이상 사용할 수 없는 경우에도 버전 1.0을 계속 로드합니다. 다음의 캐시된 버전을 실행 중인 것 같습니다.MyProg.exe V1.0.

  1. 내가 시도한 단계:
    1. 프로그램의 모든 인스턴스를 닫습니다.
    2. 새로운 것을 복사하세요MyProg.exe폴더에 복사하고 파일을 덮어씁니다(exe 버전이 1.0에서 2.0으로 업데이트됨).
    3. 버전 2.0을 확인하세요.MyProg.exe파일 서버와 터미널 서버의 속성 >> 세부 정보 페이지에서
    4. 다음을 확인하세요.MyProg.exe V2.0바로가기 파일을 사용하여 파일 서버에서 실행될 때 실행됩니다(대상:\\서버\MyProg\MyProg.exe)
    5. 동일한 바로가기 파일을 실행합니다(대상:\\서버\MyProg\MyProg.exe) 터미널 서버에서MyProg.exe V1.0시작하다
    6. 이름 바꾸기\\서버\MyProg에게\\섬기는 사람\MyProg1해당 폴더가 더 이상 존재하지 않기 때문에 터미널 서버에서 바로가기를 실행할 수 없는지 확인하세요.
    7. 새 바로가기 파일을 만듭니다(대상:\\서버\MyProg1\MyProg.exe) 그리고 이를 확인합니다MyProg.exe V2.0클라이언트에서 실행
    8. 폴더 이름 바꾸기\\서버\MyProg1돌아가다\\서버\MyProg원본 바로가기 파일을 실행하면 계속 로드됩니다.MyProg.exe V1.0터미널 서버가 다시 시작될 때까지.
    9. 터미널 서버에서 오프라인 파일이 비활성화되어 있음을 확인했습니다.
    10. 터미널 서버에서 프로그램이 실행 중일 때 MyProg.exe 실행 파일을 덮어쓸 수 없는 것을 확인했습니다.

해당 파일이 더 이상 존재하지 않는데도 이전 버전의 실행 파일이 실행되는 문제를 해결하기 위해 또 무엇을 확인할 수 있습니까?

답변1

Microsoft 기술 지원 팀에 문의했습니다. SMB에 대한 이러한 설정으로 인해 발생할 수 있다고 언급했습니다. 우리는 이러한 설정을 수정했으며 다음 업데이트 중에 이를 유지할 예정입니다.

http://technet.microsoft.com/en-us/library/ff686200(v=WS.10).aspx

위 링크의 설정이 작동하지 않았습니다.
문제를 파악하는 데 도움이 된 자세한 내용은 다음과 같습니다.클라이언트 컴퓨터는 Windows 터미널 서버입니다.

이 기술 자료 문서에서는 이와 관련된 추가 정보를 제공합니다.
https://support.microsoft.com/kb/2536487

다른 사용자가 Windows Server 2008 또는 Windows Server 2008 R2에서 원격 데스크톱 세션을 로그오프하면 응용 프로그램이 중단되거나 응답하지 않을 수 있습니다.

증상:

매핑된 드라이브에서 응용 프로그램을 실행할 때 다른 사용자가 로그오프하면 응용 프로그램이 응답하지 않거나 사용자(또는 여러 사용자)에 대해 충돌이 발생할 수 있습니다. 예를 들어:

  1. 한 서버는 파일 서버이고 다른 서버는 원격 세션 호스트 서버(터미널 서버)입니다.
  2. 파일 서버의 폴더는 RDS 서버에 연결하는 원격 사용자가 사용하도록 매핑됩니다.
  3. 여러 사용자가 매핑된 공유의 응용 프로그램을 시작했습니다.
  4. 한 사용자가 로그오프하면 해당 응용 프로그램의 다른 사용자가 응용 프로그램 충돌 또는 응답 없음을 경험하게 됩니다.

특히 버전에 따라 응용 프로그램의 첫 번째 사용자나 마지막 사용자가 로그오프할 때 이 동작이 발생합니다. Windows Server 2008에서는 첫 번째 사용자가 로그오프할 때 이 문제가 발생합니다. Windows Server 2008 R2에서는 마지막 사용자가 로그오프할 때 이 문제가 발생합니다.

원인:

이는 리디렉터가 문제의 바이너리에 대한 FCB(파일 제어 블록)를 처리하는 방식으로 인해 발생합니다. Windows Server 2008에서 FCB는 파일을 처음 연 사용자가 소유하며 이 FCB는 후속 사용자가 사용합니다. 첫 번째 사용자가 로그오프하면 FCB가 분리되어 이후 응용 프로그램 사용자가 충돌하거나 응답하지 않게 됩니다. Windows Server 2008 R2에서 FCB는 파일을 연 마지막 사용자가 소유하며 마지막 사용자가 로그오프하면 이전 사용자에게 문제가 발생합니다.

해결 방법:

네트워크 공유 대신 터미널 서버에 로컬로 애플리케이션 설치

관련 정보