Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;新的VpnApiClass();在重新启动之前获取COM异常800701e7_C#_Com_Cisco - Fatal编程技术网

C# &引用;新的VpnApiClass();在重新启动之前获取COM异常800701e7

C# &引用;新的VpnApiClass();在重新启动之前获取COM异常800701e7,c#,com,cisco,C#,Com,Cisco,我使用的是通过Interop.VpnApiLib访问的CISCO COM对象,它位于Windows 8.1上的C#,.NET2.0项目中,64位 我从这个库中创建了一个类VpnApiClass的实例,行如下: vpnApiLib = new VpnApiClass(); 有时这行代码可以工作,但我经常会遇到以下异常: 正在检索具有CLSID的组件的COM类工厂 {C15C0F4F-DDFB-4591-AD53-C9A71C9C15C0}由于以下原因失败 错误:800701e7 在这种情况下,

我使用的是通过Interop.VpnApiLib访问的CISCO COM对象,它位于Windows 8.1上的C#,.NET2.0项目中,64位

我从这个库中创建了一个类VpnApiClass的实例,行如下:

 vpnApiLib = new VpnApiClass();
有时这行代码可以工作,但我经常会遇到以下异常:

正在检索具有CLSID的组件的COM类工厂 {C15C0F4F-DDFB-4591-AD53-C9A71C9C15C0}由于以下原因失败 错误:800701e7

在这种情况下,只有重新启动Windows才有帮助。 我在谷歌上搜索了错误代码,发现它意味着

“错误:尝试访问无效地址”


有人知道如何避免这个错误吗?

受另一个关于类似问题的bug的启发,我们找到了一个解决方法。DLL似乎有一个固定的加载地址。当我在程序开始时使用
LoadLibrary()
加载DLL时,这个地址是免费的,“
new VpnApiClass()
”可以工作

根本原因是硬异常,相当于AccessViolationException。它发生在一个非常关键的时间,就像本机DLL被加载和它的DllMain()入口点运行一样。如果启用非托管调试,则可以在输出窗口中看到它。如果没有源代码,就没有任何东西可以看或做。Cisco有源代码,您需要给他们打电话。谢谢Hans。我也把这个问题放到了Cisco支持论坛:。但请看下面找到的解决方法。很可能不是真正的原因。程序中可能有一个潜在的堆损坏bug。在损坏发生后随时准备崩溃代码,更改加载顺序只会隐藏问题。它迟早会回来缠着你。