我在IIS中创建了一个wcf服务和主机。它内部有一个通过从客户端调用在服务器端执行程序的方法。它似乎不起作用。调用该方法时没有任何反应。
System.Diagnostics.Process.Start(@"C:\MtbKill.bat");
以上是不起作用的代码。我也尝试了一些过程。
Process[] process = Process.GetProcessesByName("Mtb");
foreach (var item in process)
{
try
{
item.Kill();
}
catch
{
}
}
它也不起作用。 我很困惑,它与授权有关吗?因为我已经尝试过这样创建文件夹,所以没有任何问题。
解决方案
我搜索了许多相关问题的来源。这是我发现的 Access is denied at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
答案 0 :(得分:3)
要运行批处理文件,您必须运行" cmd.exe"参数" / c"和文件的名称。
System.Diagnostics.Process.Start(@"cmd.exe /c C:\MtbKill.bat");
答案 1 :(得分:0)
<强>解决方案强>
很抱歉编辑而不是发布答案
以下是解决我问题的相关问题链接。
Access is denied at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
感谢您的帮助。
答案 2 :(得分:0)
这是我开始一个过程的方式:
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);
}
希望它有所帮助。