相关文章推荐
刚毅的炒面  ·  C# 定时器保活机制引起的内存泄露问题开发者社区·  1 月前    · 
完美的脸盆  ·  C# ...·  1 月前    · 
幸福的番茄  ·  java限制输入特殊符号_mob64ca12 ...·  1 年前    · 
才高八斗的西红柿  ·  MachineLearning 32. ...·  1 年前    · 
活泼的椅子  ·  onvif规范的实现:server端Disc ...·  1 年前    · 
温暖的硬盘  ·  cxf和spring ...·  2 年前    · 
刚失恋的蚂蚁  ·  软件程序流程图使用规范 - ...·  2 年前    · 
Code  ›  InternetExplorer COMException: System.Runtime.InteropServices.COMexception: RPC服务器不可用开发者社区
软件 system
https://cloud.tencent.com/developer/ask/sof/108572636
任性的手电筒
2 年前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 InternetExplorer COMException: System.Runtime.InteropServices.COMexception: RPC服务器不可用

Stack Overflow用户
提问于 2020-02-18 07:59:54
EN

我是C#的新手,如果这是个愚蠢的问题,请原谅。

我创建了一个控制台应用程序,它使用来自SHDocVw的“SHDocVw”。这个应用程序会转到一个网站并执行一些操作。它在我的电脑上运行得很好,但是当我试图发布它时,我就是不能让它在我的同事的电脑上工作。这些其他计算机没有安装dotnet核心。

因此,如果我将该应用程序发布为依赖于框架的应用程序,我会得到一个hostfxr.dll缺少的库错误,而且它显然根本不起作用。

我想我可以通过发布这个应用程序来解决这个问题。这也没什么用。我总是需要手动粘贴"Interop.MSHTML.dll“和"Interop.SHDocVw.dll”。当我这么做的时候,应用程序至少会启动。Internet资源管理器显示,“导航”命令工作。但是,一旦我试图隐藏窗口,或者尝试处理页面中的元素,它就会崩溃。

我得到两种类型的错误:

  1. Unhandled Exception: System.Runtime.InteropServices.COMexception: The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) at SHDocVw.IWebBrowser2.set_Visible(Boolean pBool) at MyWebApp.IEDriver.Visibility(Boolean isVisible) at MyWebApp.Program.Main(String[] args)
  2. Other时,我得到一个非常类似的错误,但它甚至提到了我自己的用户文件,即使在另一台机器上运行时也是如此。这正常吗?

Unhandled exception. System.Runtime.InteropServices.COMException (0x800706BA): The RPC server is unavailable. (0x800706BA) at SHDocVw.InternetExplorerClass.get_ReadyState() at IEAutomation.IEDriver.WaitForComplete() in C:\Users\St3ve\source\repos\MyWebApp\MyWebApp\IEDriver.cs:line 552 at TestWeb.Program.Main(String[] args) in C:\Users\St3ve\source\repos\MyWebApp\MyWebApp\Program.cs:line 82

我试图谷歌的错误,但无法使它发挥作用,我将非常感谢任何提示或帮助。

1 929 0 票数 3
EN
c#
.net-core
console-application

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-18 15:01:00

这种方法的关键是确保我们正在访问与我们的流程相关联的正确的 InternetExplorer 对象。

private InternetExplorer _IE; 
public Process m_Proc = Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe", "-nomerge www.google.com");
public IEDriver()
    Thread.Sleep(5000);
    _IE = null;
    ShellWindows m_IEFoundBrowsers = new ShellWindows();
    foreach (InternetExplorer Browser in m_IEFoundBrowsers)
    if (Browser.HWND == (int)m_Proc.MainWindowHandle)
 
推荐文章
刚毅的炒面  ·  C# 定时器保活机制引起的内存泄露问题开发者社区
1 月前
完美的脸盆  ·  C# system.Threading.Timer和system.Timers中的定时器 - JohnYang819
1 月前
幸福的番茄  ·  java限制输入特殊符号_mob64ca12ebb57f的技术博客_51CTO博客
1 年前
才高八斗的西红柿  ·  MachineLearning 32. 机器学习之支持向量机递归特征消除的特征筛选 (mSVM-RFE)-CSDN博客
1 年前
活泼的椅子  ·  onvif规范的实现:server端Discovery实现,通过OnvifTestTool12.06测试_onvif-server-discover-CSDN博客
1 年前
温暖的硬盘  ·  cxf和spring mvc的集成_51CTO博客_spring mvc和spring boot有什么区别
2 年前
刚失恋的蚂蚁  ·  软件程序流程图使用规范 - Amorphous - 博客园
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号