C# 在Windows 2008上,应用程序崩溃,而不是处理异常
我有一个函数,它应该检查COM是否在系统中注册。可能发生的情况是,COM已注册,但dll文件丢失-在这种情况下,函数也应返回false。MessageBox仅用于调试目的:C# 在Windows 2008上,应用程序崩溃,而不是处理异常,c#,com,windows-server-2008,C#,Com,Windows Server 2008,我有一个函数,它应该检查COM是否在系统中注册。可能发生的情况是,COM已注册,但dll文件丢失-在这种情况下,函数也应返回false。MessageBox仅用于调试目的: public bool IsCOMInstalled(string name) { try { MessageBox.Show("?"); var obj = Activator.CreateInstance(Type.GetTypeFromProgID(name));
public bool IsCOMInstalled(string name)
{
try
{
MessageBox.Show("?");
var obj = Activator.CreateInstance(Type.GetTypeFromProgID(name));
MessageBox.Show("!");
return true;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
return false;
}
}
在WindowsXP和7以上版本上运行良好。在Windows Server 2008上,不处理异常。应用程序在显示?后立即崩溃
为什么呢?如何使我的应用程序处理异常…?我认为这是您的windows框架的问题 当框架无法处理异常时,CLR无法进一步运行。意味着您的代码完全破坏了CLR的功能 检查windows 8的系统要求,如以下链接注释所示。 我找到了windows 8运行此操作的系统要求。
我想我们需要这个名字。嗯,是TestDll.TestTools。我看不出这有什么帮助。听起来你在初始化时TestDLL.TestTools中有一个bug。如果有什么东西导致进程崩溃,你就无法捕捉到。此外,这些ExecutionEngineeException、StackOverflowException和OutOfMemoryException不会被捕捉到,你的应用程序就会死掉。但是由于您正在进行COM调用,首先检查是否缺少本机DLL。