开发者

System.Diagnostics.Process.Start() problems on Windows Server 2008

I need to kick off a 3rd party java application from a c# .net application. Originally I wanted to do this from an asp.net site but after running into problems with permissions/privileges I moved onto attempting to do it from a windows service since it runs as the system user which I'd hoped would remove my problems. Oh yes and my problems are occuring when trying to run this on a windows 2008 server. All is good in my windows 7 development environment.

Naturally I have scoured these forums and others for answers and nothing I have found has helped so please entertain me.

I have the command I want to run in a batch file and am using the following code to start it.

ProcessStartInfo psi = new ProcessStartInfo(filePathToBatchFile);
        psi.Arguments = "arguments for batch file..."
        psi.UseShellExecute = false;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;
        psi.RedirectStandardInput = true;
        Process p = Process.Start(psi);

I'm running a batch file essentially because I wanted to make sure that something was happening. I have made sure that all the variables and file paths are correct and that the batch file is indeed running. I can get it to do other things like xcopy files around and I can run the command myself from the command line and it works fine. There are no exceptions being thrown and no output from the process. If I changed the paths (to the java binaries, the files that I'm passing to it etc.) to deliberately incorrect ones then it complains.

I have tried running this process as different users, namely the one I can use to log into the server and run the command manually. I have given the service access to the desktop from the services properties menu.

If anyone has any ideas about what is happening here, or even some tips on how I can go about diagnosing t开发者_运维技巧his it would be hugely appreciated.


You have to create a manifest for your app or turn off UAC.

What is happening is that since it is not a signed executable the UAC is preventing your service from running/starting other apps. That's where the manifest comes in.... Look it up in the Windows SDK documentation (Applicaiton Manifest).

I have ran into issues like this before, and whats most annoying is that there are no errors: http://msdn.microsoft.com/en-us/library/bb756929.aspx and here: http://technet.microsoft.com/en-us/library/xc3tc5xx(VS.80).aspx (better description)

Tutorial on manifests: http://msdn.microsoft.com/en-us/library/bb756973.aspx (Very Good)

Windows App Permissions and UAC (Vista, 7, 2008/R2) http://msdn.microsoft.com/en-us/library/bb756996.aspx

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜