2012-03-22 2 views
0

.NET 웹 서비스에서 Python 스크립트를 실행하는 데 문제가 있습니다..NET 웹 서비스에서 Python 스크립트 호출

웹 서비스는 python.exe에 대해 System.Diagnostics.Process을 만들고 파이썬 스크립트 경로를 인수로 전달합니다.

웹 서비스가 사용자 지정 로컬 계정으로 실행되고 있습니다. 관리자 그룹에 사용자 지정 로컬 계정을 추가하면 파이썬 스크립트가 성공하지만 해결책으로는이를 수행 할 수 없습니다.

Python 스크립트가 ArcPy라는 ESRI에서 라이브러리를 가져 오지 못했습니다. 이 모듈은 Java JAR을 사용하여 (ESRI의 API) ArcObjects를 호출합니다.

웹 서비스의 컨텍스트에서 실행될 때만 오류가 발생합니다. runas를 사용하여 cmd 셸을 열어 웹 응용 프로그램 풀 사용자 지정 계정으로 실행하고 python 스크립트를 호출하면 제대로 작동합니다 (응용 프로그램 풀 계정이 관리자 그룹에없는 경우에도 마찬가지 임). 웹 서비스로 실행할 때 관리자 그룹에 있어야합니다.

나는 w3wp.exe와 python.exe의 항목에 대해 procmon을 살펴 봤지만 권한을 변경해야하는 항목을 찾지 못했습니다.

왜 나는 웹 서비스가 아닌 응용 프로그램 풀 계정으로 실행되는 셸에서 작동하는지 궁금합니다.

모든 로컬 사용자 권한 할당 정책을 응용 프로그램 풀 계정에 부여하지만 작동하지 않아서 배제되었습니다.

사용자 프로필을로드하도록 웹 서비스 응용 프로그램 풀을 변경했지만 도움이되지 않았습니다.

system.diagnostics.process이 IIS 응용 프로그램 풀의 컨텍스트에서 실행될 때와 실행되는 쉘이 동일한 계정으로 실행되는 쉘과 다른 점은 무엇입니까?

+1

왜 'python.exe'를 실행하는 대신 IronPython을 사용하지 않는가? IPY가 .NET과 완벽하게 통합되어 있습니다. 특히> = v4 – sll

+0

@sll이 기능을 사용할 수없는 경우 대안이 될 수 있습니다. –

답변

0

보안과 관련이 없다는 것이 밝혀졌습니다. ESRI는 python 인스턴스를 설치하고 .PTH 파일을 Lib \ site-packages 디렉토리에 추가합니다.

ArcGIS Desktop과 ArcGIS 서버가 모두 설치되어 있고 둘 다 ArcPy Python 모듈이 프로그램 파일 디렉토리에 있습니다. 파이썬은 잘못된 모듈을 처음으로 가져 오기 때문에 가져 왔습니다.

문제는이 ESRI KB에 문서화되어 있습니다.

http://support.esri.com/en/knowledgebase/techarticles/detail/39029

나는 계정이 있지만 관리자 그룹에있을 때이 일을 왜 모르겠어요.

관련 문제