1

我有一个使用 Process 来执行命令行工具的 ASP.Net Web 应用程序。命令行工具的参数由用户作为输入提供。

如果参数有问题,那么命令行工具会崩溃。这是我检查进程是否成功退出的方法:

Process.Start();
Process.WaitForExit();
if(Process.ExitCode==0)
   return true;
else
   return false;

最初,我使用 IIS 在我的 PC 上托管了这个应用程序,它按预期工作(当命令行工具崩溃时,Process.ExitCode 给出一个非零值)。

但是当我将它托管在服务器上时,我发现当命令行工具崩溃时,Process.ExitCode 给出 0,并且我的应用程序继续运行,就好像一切正​​常。调试时发现,当命令行工具崩溃时,服务器会弹出JIT调试器对话框。禁用 JIT 调试后,会弹出一个不同的 JIT 对话框:

[命令行工具名称] 中出现未处理的 Microsoft .Net 异常。即时调试此异常失败并出现以下错误:Visual Studio 无法调试此未处理的异常,因为它来自比已安装的 Visual Studio 版本更新的 Microsoft .Net 框架版本。要调试此异常,请使用更新版本的 Visual Studio。检查文档索引以获取“及时调试,错误”以获取更多信息

我的 PC 和服务器都安装了 Visual Studio 2010 Ultimate。为什么会有这种不同的行为呢?我该如何解决这个问题?

4

0 回答 0