我有一个ASP.Net Web应用程序,它使用Process来执行命令行工具。命令行工具的参数由用户提供输入。
如果参数有问题,则命令行工具崩溃。这是我如何检查过程是否成功退出:
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无法调试此未处理的异常,因为它来自Microsoft .Net框架的版本,该版本比安装的Visual Studio.U版本更新,调试此异常,使用更新版本的Visual Studio。有关详细信息,请查看文档索引“及时调试,错误”
我的电脑和服务器都安装了Visual Studio 2010 Ultimate。为什么这种不同的行为呢?我该如何解决这个问题?