详细解释c#"对 COM 组件的调用返回了错误 HRESULT E
网络整理 - 06-27
c#中 “对 COM 组件的调用返回了错误 HRESULT E_FAIL”的原因。
报错组件:vs2010中的webbrowser
报错症状:当使用webbrowser的navigate方法时,报错:“对 COM 组件的调用返回了错误 HRESULT E_FAIL”
原因分析:这个错误很少见,我用过这么多次webbrowser,从来没见过这个错误,很快我发现了这次调用的特殊性
本次调用后,webbrowser实例已被网页给倒计时5秒,关闭了。不过在c#程序中,网页是仍然可见的,但是事实上,此部分实例已经释放了。
所以,当我们再次调用之前的已销毁的webbrowser实例的时候,自然的就会出现这个比较特殊的"对 COM 组件的调用返回了错误 HRESULT E_FAIL"错误了。
网上也有朋友说是webbrowser内存泄露了,其实都差不多,总之那个时候该webbrowser实例确实是不能用了。
请在网页被自动关闭前就navigate其他页面来避免此问题。重新new一个webbrowser1虽然可以不再报错,但是新的webbrowser1已经没办法在窗体中看到了。
c#"对 COM 组件的调用返回了错误 HRESULT E_FAIL"报错原因