문제 : .NET 코드는 한 디렉토리에서 실행되지만 다른 디스크에서는 동일한 디스크에서 실행됩니다.

StackOverflow https://stackoverflow.com/questions/126228

  •  02-07-2019
  •  | 
  •  

문제

우리의 응용 프로그램은 하이브리드 Win32 관리되지 않은 응용 프로그램 및 .NET 2.0 관리 응용 프로그램입니다. Win32 부분은 메인 실행 파일로, 어느 시점에서 .NET 2.0 런타임을로드하고 호스팅하고 일부 관리 모듈을로드하여 새 WinForms Windows를 열었습니다.

우리는 Caspol-Type 문제에 대한 우리의 몫을 가지고 있었지만 오늘날 우리는 매우 이상한 문제가 있고 누군가가 나에게 몇 가지 포인터 나 아이디어를 줄 수 있기를 바라고 있습니다. 우리는 이것을 해결합니다.

서버에서 Citrix를 통해 액세스하는 서버에서 응용 프로그램 파일이 현재 로그인 한 사용자의 데스크탑에있는 디렉토리에있는 경우 서버/도메인 관리자 인 프로그램은 정상적으로 실행됩니다. .NET Windows가 예상대로 열립니다.

그러나 디렉토리를 서버의 물리적 디스크 인 동일한 디스크의 루트로 이동하면 (따라서 SAN 매핑이나 CASPOL 명령을 트리거하는 것은 없습니다. 내 지식으로) 그리고 다른 모든 것을 동일한 사용자, 동일한 구성 등으로 유지하십시오., .NET Windows를 호출하려고 할 때 응용 프로그램이 조용히 충돌합니다. 그것은 단지 사라지는 방식으로 충돌하여 스택 오버플로와 같은 것일 수 있음을 시사합니다. 우리는 앱의 일부에 로깅을 추가하여 어떤 일이 일어나고 있는지, 어디에 있는지 알아낼 수 있지만 여기 에도이 질문을 게시하고 있습니다.

지금까지 우리는 Caspol Access List에 이상한 점이 없으며 NGEN 캐시에는 이상한 것이 없음을 확인했습니다 (서버 소유자가 함께 연주 한 경우 이전의 이미지가 손상되었다고 생각했을 것입니다). GAC (어셈블리에는 GAC를 사용하지 않습니다).

요약 :

  • 프로그램이 u : documents and settings username desktop directory에서 실행되면 작동합니다.
  • U : Directory에서 실행되면
  • U : 서버의 물리적 디스크입니다
  • NGEN 또는 GAC 캐시에는 명백한 이상한 점이 없습니다
  • 오른쪽 .NET 런타임이 설치되고 응용 프로그램에 대한 올바른 파일이 설치되었습니다 (실제로 데스크탑 위치에서 실행되는 경우 실제로 작동합니다).

도움이 될 수있는 사람이 있습니까?

편집하다: 문제 여기서 다시 시작했습니다 다른/기타 정보와 "해결".

도움이 되었습니까?

해결책

첫 번째 찌르기는 MS-Sysinternals에서 프로세스 모니터를 실행하는 것입니다. 어쩌면 그것은 당신에게 몇 가지 힌트를 줄 것입니다 (동일한 통화에 대한 다른 결과, 문제가 잘되지 않는 문제 실행의 일부 오류 ...)

MS에서 프로세스 모니터를 다운로드 할 수 있습니다.http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

다른 팁

나는 정확히 그러한 문제가 얼마 전까지는 문제를 겪었습니다. 많은 머리카락을 당긴 후 나는 문제를 발견했다.

Process.Start () 또는 해당 호출을 사용할 때 매우 조심해야합니다. 시작 방법에 따라 다양한 폴더를 작업 환경 (현재 경로, 시스템 환경 등으로 사용할 수 있습니다.

첫 번째 생각은 어셈블리, 파일 등에 대한 참조를 위해 프로그램에 정의 된 상대/절대 경로가 없는지 확인해야한다는 것입니다. 응용 프로그램 루트 디렉토리를 이동할 때 문제가 발생합니다.

사용자 특권과 관련이있을 수 있습니까? 실행하십시오 Lua Buglight 확인하다. 직접 관련이 없더라도 해당 도구는 유용한 힌트를 줄 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top