我想從WCF服務端的內部網客戶端運行一個進程。在我的情況下,客戶請求服務器在提供的證書下在服務器的機器上創建一個新進程。 WCF服務託管在IIS 7.5和我使用此代碼如何從IIS託管的WCF服務啓動進程?
var processInfo = new ProcessStartInfo("C:\\Windows\\System32\\notepad.exe")
{
UserName = "some user",
Password = MakeSecureString("some password"),
UseShellExecute = false,
LoadUserProfile = true
};
Process process = Process.Start(processInfo);
啓動一個進程
如果我是主持人WCF服務爲自託管控制檯應用程序下,管理員用戶運行,我看到記事本在另一個用戶啓動此代碼工作。它無法在IIS上有沒有異常,但處理立即終止
process.HasExited = true;
process.ExitCode = -1073741502;
在IIS WCF應用具有管理員權限的用戶下運行,並已獲得在web.config中定義的完全信任。我無法使用自託管的應用程序,因爲它不支持簡單的持續交付(如WebDeploy與IIS網站)。
問:如何從IIS上託管的WCF服務啓動服務器端的進程?
編輯:
我偶然發現了這個post,類似的問題,我想那裏所有的方法,包括的Process.Start與CreateProcessWithLogonW的P/Invoke和CreateProcessAsUser所有可能的變化我也試過授予額外的權限給用戶。非此,將與錯誤消息相同的人張貼。
任何具有完整源代碼示例的最終解決方案? – Kiquenet
沒有骯髒的黑客是不可能的。我沒有這樣做。 – oleksii
哪個髒駭客? – Kiquenet