在IIS上通过ASP.NET / C#在服务器上运行进程

时间:2014-07-17 14:03:52

标签: c# asp.net iis

我要做的是在单击按钮时运行位于Web服务器桌面上的批处理文件。这就是我到目前为止所做的。

ProcessStartInfo psi = new ProcessStartInfo("Notepad.exe");
   psi.WorkingDirectory = @"C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories";
   psi.UseShellExecute = false;
   psi.UserName = "administrator";  //username
   psi.Password = secure;  //secure string
var process = Process.Start(psi);

当我调试它时,它完全符合我的要求,但当我在IIS(localhost:81)上访问该站点时,批处理文件永远不会运行。我已经尝试了许多不同的ProcessStartInfo和Process变种而没有运气。我已经测试了用户名和密码,它们也是正确的。

我没有收到任何错误,该按钮只会触发一个页面回发。

我已经为该文件提供了IUSR和IIS_IUSRS权限,但仍然没有运行。我还删除了用户名和密码,并将UseShellExecute设置为true,但这也没有做任何事情。

编辑:

看起来每个人都认为它有一些权限。关于允许IIS打开进程需要做什么的任何想法?

提前致谢!

1 个答案:

答案 0 :(得分:0)

只需将第三行更改为:

  psi.UseShellExecute = true;

或阅读这篇真正完成工作的文章:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;889251