繁体   English   中英

如何使用Process.Start()通过Web服务在服务器端执行程序?

[英]How can I use Process.Start() to execute program on the server-side via web service?

我在IIS中创建了一个wcf服务和主机。 它内部有一个通过从客户端调用在服务器端执行程序的方法。 它似乎不起作用。 调用方法时没有任何反应。

System.Diagnostics.Process.Start(@"C:\MtbKill.bat");

以上是不起作用的代码。 我也试过一些过程。

Process[] process = Process.GetProcessesByName("Mtb");
foreach (var item in process)
{
    try
    {
        item.Kill();
    }
    catch
    {
    }
}

它也不起作用。 我很困惑,它与授权有关吗? 因为我试过这样创建文件夹,所以没有任何问题。

我搜索了许多相关问题的来源。 以下是我在System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)中发现Access被拒绝的内容

要运行批处理文件,必须运行带参数“/ c”的“cmd.exe”和文件名。

System.Diagnostics.Process.Start(@"cmd.exe /c C:\MtbKill.bat");

很抱歉编辑而不是发布答案

这是解决我的问题的相关问题链接。

System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)拒绝访问

谢谢你的帮助。

这就是我开始一个过程的方式:

try{
 Process.Start("osk.exe", "/C");
} catch(exception ex)
{
WriteLog("Error: Onscreen keyboard could not start.", ex);
}

这是我杀死一个进程的方式:

    try
    {
      Process[] processlist = Process.GetProcesses();
      foreach (Process theprocess in processlist)
      {
        if (theprocess.ProcessName == "osk")
        {
          theprocess.Kill();
        }
      }
    }
    catch (Exception ex)
    {
      WriteLog("Error: KillKeyBoardProcess", ex);
    }

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM