2012-08-15 22 views
1

我寫這個代碼啓動一個進程:無法啓動的過程在C#

var proc = new Process(); 
proc.StartInfo.Arguments = string.Format("{0} {1}", inputFilePath, outputFilePath); 
proc.StartInfo.FileName = @Settings.GetImageMagickConvertPath(); 
proc.StartInfo.CreateNoWindow = false; 
proc.StartInfo.UseShellExecute = false; 
proc.Start(); 

這工作完全在本地。但是當我把這段代碼放到遠程機器上時,這段代碼不再起作用(錯誤是「嘗試啓動proc時」訪問被拒絕「)。所以,我已經添加了我使用,以便使用RDC(用戶/密碼)啓動過程中連接的憑據:

proc.StartInfo.UserName = "user"; 

System.Security.SecureString secret = new System.Security.SecureString(); 

foreach (char c in "pass") 
    secret.AppendChar(c); 

proc.StartInfo.Password = secret; 

,但我仍然收到了同樣的錯誤......

你們是否看到什麼可以解決這個問題?

+0

哪個操作系統(一個或多個)參與? – Neil 2012-08-15 23:45:32

+0

您是否必須傳遞用戶名密碼,或許遠程計算機需要服務帳戶用戶/ pw嘗試使用用戶名密碼傳遞憑證,或許它期望域/用戶密碼 – MethodMan 2012-08-15 23:48:17

+1

將整個拒絕訪問異常轉儲到磁盤並查看詳細信息。我的猜測是這是一個NTFS ACL問題。這是來自ASP.NET/WCF進程嗎?如果是這樣,請檢查您的應用程序池標識和模擬設置。 – Dai 2012-08-15 23:59:14

回答

0

好的,現在就解決了。

基本上我有兩個問題:

  1. 的過程,開始是不正確的(而不是folder/program.exe我把錯誤folder/和我收到「訪問被拒絕」,這讓我的生活是一場噩夢的路徑(開始尋找權利,賬戶等)。如果微軟改進了這個錯誤,例如「進程的路徑錯誤」,那麼結果會不錯。

  2. 我必須將其作爲本地服務(應用程序池)而不是應用程序池標識運行。 (和不需要啓動信息憑證)參與

操作系統:Windows 2008服務器R1)