我想從.NET服務的不同用戶下啓動.NET應用程序。這個想法是在Windows中創建一個沙盒主機應用程序。在該服務中,我以編程方式在Windows中創建用戶,爲該用戶創建一個文件夾,並將主機.exe從服務器下載到該文件夾中。然後我使用System.Diagnostics.Process運行主機.exe。這裏是StartInfo的爲過程:權限問題從.NET服務作爲一個不同的用戶啓動.NET應用程序?
_process = new Process
{
StartInfo =
{
Arguments = " -debug",
FileName = instanceDirectory + "host.exe",
WorkingDirectory = instanceDirectory,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
RedirectStandardInput = true,
UserName = Helpers.GetUserNameForInstance(_hostid),
Password = _hostpass,
Domain = ""
},
EnableRaisingEvents = true
};
當我運行服務作爲一種服務,過程與-1073741502錯誤代碼瞬間崩潰。但是當我以Windows服務中指定的相同用戶的身份運行服務,但在控制檯中交互式地運行時,一切正常。只有在服務作爲服務運行時纔會發生這種情況,而不是直接在控制檯中運行。
任何幫助將不勝感激。這一直是現在很長一段時間頭疼,這也是不得已而爲之:(
您是否測試過在控制檯應用程序中運行的相同代碼? – 2010-01-18 00:50:06
是的,一切正常運行在獨立模式..它只有作爲服務運行的問題。 – 2010-01-18 01:07:16
嗨,正如你所說,這聽起來像是一個權限問題,因爲它不是服務時運行。此鏈接可能有所幫助: http://asprosys.blogspot.com/2009/03/perils-and-pitfalls-of-launching.html – keyboardP 2010-01-18 02:20:30