
이 문제는 나와 우리 회사의 IT 부서가 정확히 찾아내는데 많은 시간을 소비한 문제입니다.
문제는 Windows Server 2008, Windows 7 및 Windows 8에서만 나타납니다. Windows XP 또는 Windows Server 2003에서는 문제가 없습니다.
우리 회사 내부적으로 개발한 프로그램이 있습니다. 프로그램은 제대로 작동하며 문제는 이 프로그램에만 국한되지 않습니다.
프로그램은 localhost를 사용하여 웹 서비스를 통해 컴퓨터에서 실행되는 다른 프로그램과 통신합니다. 문제는 프로그램이 사용자 홈 폴더에 있는 경우 이 통신이 작동하지 않는다는 것입니다.
이것이 왜 발생하는지 알아내는데 많은 시간을 투자한 결과, 사용자가 실행 파일에 대한 UNC 경로의 모든 상위 폴더에 액세스할 수 있으면 문제가 사라진다는 사실을 최근에 깨달았습니다.
따라서 홈 드라이브가 H: = \SomeServer\hdrive$\SomeUser에 마운트되어 있고 사용자가 \SomeServer\hdrive$에 액세스할 수 없다면 프로그램에 TCP 오류가 발생하고 웹 서비스가 작동하지 않습니다.
사용자가 해당 경로에 대해 "폴더 내용 나열" 권한만 얻으면 웹 서비스가 작동합니다.
그렇지 않으면 프로그램이 잘 실행됩니다. 모든 dll 파일이 성공적으로 링크되었으며, 다른 오류는 발생하지 않는 것을 확인했습니다.
이는 OS가 수행하는 작업인 것 같습니다. 왜 이런 일이 일어나는지 아는 사람이 있나요?
답변1
Windows 7 이상에서는 특정 폴더가 기본적으로 보호됩니다. 내 이해는 이것이 보안상의 이유라는 것입니다. 즉. 이는 프로그램 A가 프로그램 B가 사용하는 DLL을 비밀리에 수정하는 것을 더 어렵게 만듭니다.
종종 문제의 프로그램을 마우스 오른쪽 버튼으로 클릭하고 "관리자 권한"으로 실행하면 제대로 작동한다는 사실을 발견했습니다. 나는 그것이 귀하의 경우에 효과가 있을지 확신하지 못합니다.