我想从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