2012-08-08 85 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 }); 

的Web應用程序使用單獨的AppDomain其身份被設定爲具有服務器上管理員權限的用戶帳戶。

的Process.Start拋出一個異常,告訴

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

我還測試了的ProcessStartInfo設置用戶名和密碼。指定密碼相當棘手(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可能需要調整)? – 2012-08-08 14:59:35

回答

1

我懂了!

這是很奇怪的,但所需要的唯一的變化是調用

Process.Start(exeFullPath, args); 

顯然的ProcessStartInfo道具的組合是非常重要的。

+0

+1你是男人!感謝您計算出來:) – ashes999 2013-02-12 21:47:36

0

此Q/A幫我在我的項目之一解決這個問題,但不同的原因 -

試圖從一個集成測試的域用戶被nCrunch運行來啓動進程。結果我的問題是一個非常長的參數字符串。

(相同的參數串沒有用戶/密碼作品)

環境是Windows 8中,64位。

無論如何,只能以不同的方式傳遞參數數據。