VB 调用的 object 已与其客户端断开连接
VB The object invoked has disconnected from its clients
我有一个控制台应用程序可以与 Internet Explorer 交互以执行一些操作。
基本上,应用程序在 VS 2015 专业版 debug/release 模式下运行完全正常。
一旦以调试或发布模式作为 exe 发布,我就会收到您在 post 标题中看到的错误。
有人遇到过这种情况吗?
在此先感谢您。
enter image description here
我还想补充一点,当程序在发布后首次启动时它可以工作,它使用我在另一个项目中创建的 class 库中的 .dll 它让 Internet Explorer 使其可见然后失败.
Public Shared Function func_getIe(strIntialUrl As String) As InternetExplorer
Dim ie As InternetExplorer
ie = New InternetExplorer
ie.Visible = True
ie.Navigate(strIntialUrl)
While ie.ReadyState <> 4
End While
Return ie
End Function
这是 .dll 一部分的代码,除了 Main() 开头的一些变量声明之外,几乎是第一件事。
嘿伙计们找到了一个很好的答案here:
如果 link 死了,这是他们说要做的事情:
System.Runtime.InteropServices.COMException : “The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))"
堆栈跟踪:
在 SHDocVw.InternetExplorerClass.set_Visible(布尔 pBool)
at ProtectedModePOC.Form1.button1_Click(Object sender, EventArgs e) in D:\ProtectedModePOC\Form1.cs:line 38
保护模式设置:Internet 关闭和 Intranet 开启
异常:
System.Runtime.InteropServices.COMException : “The interface is unknown. (Exception from HRESULT: 0x800706B5)”
堆栈跟踪:
在 SHDocVw.InternetExplorerClass.set_Visible(布尔 pBool)
at ProtectedModePOC.Form1.button1_Click(Object sender, EventArgs e) in D:\ProtectedModePOC\Form1.cs:line 38
我在将 InternetExplorer 对象的 Visible 属性 设置为 true 时遇到此异常。仅当尝试导航到 Internet 和 Intranet 区域的保护模式设置不同的 Intranet 应用程序时,才会观察到这种情况。如果 Internet 和 Intranet 区域的保护模式保持打开或关闭(对两个区域保持相同),问题就会消失。
如果我关闭 UAC(用户访问控制),则不会发生异常,即使 Internet 和 Intranet 区域的保护模式设置不同。
答:进入IE选项,在intranet和internet的安全下,启用或禁用保护模式需要匹配。
就我而言,我们的管理员强制保护 Internet,因此我也必须对 Intranet 处于保护模式。
虽然我不能说我完全理解它是如何工作的,但我可以说在尝试导航到 Intranet 之前我没有遇到任何问题。所以这可能解释了异常的 "disconnected" 部分。
希望这对某人有所帮助。
我有一个控制台应用程序可以与 Internet Explorer 交互以执行一些操作。
基本上,应用程序在 VS 2015 专业版 debug/release 模式下运行完全正常。
一旦以调试或发布模式作为 exe 发布,我就会收到您在 post 标题中看到的错误。
有人遇到过这种情况吗?
在此先感谢您。
enter image description here
我还想补充一点,当程序在发布后首次启动时它可以工作,它使用我在另一个项目中创建的 class 库中的 .dll 它让 Internet Explorer 使其可见然后失败.
Public Shared Function func_getIe(strIntialUrl As String) As InternetExplorer
Dim ie As InternetExplorer
ie = New InternetExplorer
ie.Visible = True
ie.Navigate(strIntialUrl)
While ie.ReadyState <> 4
End While
Return ie
End Function
这是 .dll 一部分的代码,除了 Main() 开头的一些变量声明之外,几乎是第一件事。
嘿伙计们找到了一个很好的答案here:
如果 link 死了,这是他们说要做的事情:
System.Runtime.InteropServices.COMException : “The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))"
堆栈跟踪:
在 SHDocVw.InternetExplorerClass.set_Visible(布尔 pBool)
at ProtectedModePOC.Form1.button1_Click(Object sender, EventArgs e) in D:\ProtectedModePOC\Form1.cs:line 38
保护模式设置:Internet 关闭和 Intranet 开启
异常:
System.Runtime.InteropServices.COMException : “The interface is unknown. (Exception from HRESULT: 0x800706B5)”
堆栈跟踪:
在 SHDocVw.InternetExplorerClass.set_Visible(布尔 pBool)
at ProtectedModePOC.Form1.button1_Click(Object sender, EventArgs e) in D:\ProtectedModePOC\Form1.cs:line 38
我在将 InternetExplorer 对象的 Visible 属性 设置为 true 时遇到此异常。仅当尝试导航到 Internet 和 Intranet 区域的保护模式设置不同的 Intranet 应用程序时,才会观察到这种情况。如果 Internet 和 Intranet 区域的保护模式保持打开或关闭(对两个区域保持相同),问题就会消失。
如果我关闭 UAC(用户访问控制),则不会发生异常,即使 Internet 和 Intranet 区域的保护模式设置不同。
答:进入IE选项,在intranet和internet的安全下,启用或禁用保护模式需要匹配。
就我而言,我们的管理员强制保护 Internet,因此我也必须对 Intranet 处于保护模式。
虽然我不能说我完全理解它是如何工作的,但我可以说在尝试导航到 Intranet 之前我没有遇到任何问题。所以这可能解释了异常的 "disconnected" 部分。
希望这对某人有所帮助。