2010-05-05 3 views
0

ASP.NET 응용 프로그램에서 관리되지 않는 ImageMagick 라이브러리를 System.Diagnostics.Process를 사용하여 명령 줄에서 사용하려고합니다. 기본적으로 사용자는 .eps 파일을 사이트에 업로드 한 다음 명령 줄 명령을 실행하여 .jpg 파일로 변환합니다.System.Diagnostics.Process를 사용하는 동안 액세스가 거부되었습니다.

 Dim proc As New System.Diagnostics.Process 
     proc.StartInfo.RedirectStandardOutput = True 
     proc.StartInfo.RedirectStandardError = True 
     proc.StartInfo.FileName = "C:\Program Files (x86)\ImageMagick-6.6.1-Q16\convert.exe" 

     proc.StartInfo.UseShellExecute = False 
     proc.StartInfo.Arguments = String.Format("{0} {1}", Server.MapPath("~/logo/test.eps"), _ 
               Server.MapPath("~/certificates/temp/test-1234.jpg")) 
     proc.StartInfo.CreateNoWindow = True 
     proc.Start() 

난 그냥 우리의 개발 승 2K3 서버에 잘 아니지만 우리의 생산 승 2K3 서버에서이 코드를 실행할 수 있어요 : 이것은 내가 시도하고 명령을 실행하는 데 사용하고 코드입니다. "System.ComponentModel.Win32Exception : 액세스가 거부되었습니다"오류가 발생합니다. 두 서버 사이의 주된 기능은 프로덕션이 64 비트이며 Plesk를 실행하여 여러 도메인을 관리한다는 것입니다. 나는 ImageMagick 디렉토리에 asp.net 권한을 추가하려고 시도했다. PS Admin은 Plesk의 경우 FPE를 사용하여 VS에서 사이트에 액세스하는 데 사용하는 것과 동일한 계정이라고 말합니다.

프로덕션 서버에서이 프로세스를 실행하기 위해 내가 무엇을 할 수 있는지 알고 있습니까?

감사합니다,

마이크

답변

1

당신은 실제 응용 프로그램 풀 ID 응용 프로그램을 시작할 수있는 권한을 부여되어 있는지 확인해야합니다. plesk는 서버에서 설정할 때 각 도메인마다 특정 사용자를 생성합니다.

당신은에 어떤 응용 프로그램 풀 및 ID 확인하기 위해 IIS 관리자를 사용하여이 유효성을 검사 할 수 있습니다.

내 생각 엔 당신이 단순히 올바른 사용자에게 부여 된 권한이없는 것입니다.

+0

그 트릭을했는데, 도메인의 ID 인 IWAM_plesk 사용자가 있다는 것을 발견했습니다. 해당 사용자에게 사용 권한을 추가하고 나면 명령이 실행됩니다. 이제 IM에서 사용하는 Ghostscript에 대한 액세스뿐만 아니라 변환하려는 파일을 처리하는 파일 권한 오류가 발생합니다. 나는 누군가가 방금 .NET 라이브러리를 작성하여 같은 일을했다면 좋겠다. 고마워, 그래도. – mclark1129

+0

웹 응용 프로그램에서 .exe를 호출하는 것은 항상 고통 스럽습니다. "실시간"이 필요한 것이 아니라면 처리를 할 수있는 Windows 서비스를 만들 수 있습니다.보다 표준적인 권한 세트를 사용할 수 있으며 웹 컨텍스트에서 벗어날 수 있습니다. –