2012-08-08 3 views
1

WCF 서비스에서 새 프로세스를 시작하려고합니다. 이를 위해ASP.NET에서 새 프로세스 시작에 실패했습니다.

var process = Process.Start(
    new ProcessStartInfo { WorkingDirectory = config.WorkingDirectory, 
          FileName = config.WorkingDirectory, 
          Arguments = string.Format("{0} {1}", mpcName, jobId), 
          CreateNoWindow = false, 
          WindowStyle = ProcessWindowStyle.Hidden }); 

웹 응용 프로그램은 Identity가 서버에 관리자 권한이있는 사용자 계정으로 설정된 별도의 AppDomain을 사용하고 있습니다.

Process.Start를 내가 또한 ProcessStartInfo를에 사용자 및 암호 설정을 테스트

Server execution failed, at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 

말하는 예외가 발생합니다. 암호를 지정하는 것이 매우 까다 롭습니다 (SecureString). 그런 다음이 방법을 건너 뛰었으므로

The stub received bad data, at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 

을 받았습니다.

내 문제의 원인과 해결 방법을 알고 계십니까?

깜빡 : Windows Server 2008 R2, IIS 7을 사용하고 있습니다.

+0

UseShellExecute = false를 ProcessStartInfo로 설정하려고 했습니까 (이 경우 fileName과 args를 조정해야 할 수도 있습니다)? –

답변

1

알았어요!

그것은 매우 이상하다하지만 필요한 유일한 변화는 ProcessStartInfo를 소품의 조합이 중요 분명히

Process.Start(exeFullPath, args); 

를 호출하는 것이 었습니다.

+0

+1 당신은 남자입니다! 그걸 알아 주셔서 고마워요 :) – ashes999

0

이 Q/A는 내 프로젝트 중 하나에이 문제를 해결 도움이,하지만 서로 다른 원인은 -

하는 통합 테스트에서 도메인 사용자가 nCrunch에 의해 실행되는 것으로 프로세스를 시작하려고했다. 내 문제는 정말로 긴 인수 문자열이었다.

환경은 윈도우 8, 64 비트입니다 (같은 인수 문자열이없는 사용자/암호와 함께 작동).

어쨌든 arg 데이터를 다른 방식으로 전달해야합니다.

관련 문제