.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 응용 프로그램 풀의 컨텍스트에서 실행될 때와 실행되는 쉘이 동일한 계정으로 실행되는 쉘과 다른 점은 무엇입니까?
왜 'python.exe'를 실행하는 대신 IronPython을 사용하지 않는가? IPY가 .NET과 완벽하게 통합되어 있습니다. 특히> = v4 – sll
@sll이 기능을 사용할 수없는 경우 대안이 될 수 있습니다. –