IIS上任何exe的Process.Start有时都会失败

时间:2019-04-03 11:46:37

标签: asp.net iis

我们在IIS(Windows Server 2016)上运行ASP.Net代码。我们的Asp.Net代码启动外部exe。通常,一切正常。但是有时exe无法启动。发生这种情况时,只需完全重启计算机即可解决问题。

我编写了测试代码以仅启动notepad.exe。它会工作一段时间,并在需要时启动notepad.exe。一段时间后再次无法启动notepad.exe,所有连续调用将失败。重新启动IIS将无济于事。重新启动PC将解决问题。

  ProcessStartInfo processStartInfo =
    new ProcessStartInfo(@"C:\Windows\notepad.exe");

   Process process = new Process();
   process.StartInfo = processStartInfo;
   process.Start()

我希望notepad.exe每次都能开始工作。或者至少在失败的情况下,获得描述失败原因的有意义的异常说明。我想知道这可能是某种IIS DoS保护。我们的应用程序占用大量资源,并且在运行多个小时后会发生此故障。

1 个答案:

答案 0 :(得分:0)

使用Notepad.exe是一个不好的示例,因为它具有UI组件,希望您的external.exe没有,因为它具有UI组件。

IIS没有您所描述的任何“ DoS”类型保护。

我会尝试两件事: 1)Process.Start()返回布尔值。如果返回false,则向应用程序添加一些错误日志记录,以从Process对象中转储信息。 2)由于此问题一旦开始发生就很容易重现,请运行Sysinternals ProcMon,看看是否收到任何Process Start Events并查看Process Terminate事件。