![](/img/trans.png)
[英]'System.Runtime.InteropServices.COMException'
[英]InternetExplorer COMException: System.Runtime.InteropServices.COMexception: The RPC server is unavailable
我對 C# 很陌生,所以如果這是一個愚蠢的問題,請原諒。
我創建了一個控制台應用程序,它使用 SHDocVw 的“InternetExplorer”。 此應用程序訪問網站並執行一些操作。 它在我的電腦上運行得很好,但是當我嘗試發布它時,我無法讓它在我同事的電腦上運行。 這些其他計算機沒有安裝 dotnet 核心。
因此,如果我將應用程序發布為依賴於框架的應用程序,則會出現 hostfxr.dll 缺少庫錯誤,而且它顯然根本不起作用。
我想我可以通過將應用程序發布為獨立的應用程序來解決這個問題。 這也沒有幫助。 我總是需要手動粘貼“Interop.MSHTML.dll”和“Interop.SHDocVw.dll”。 當我這樣做時,應用程序至少會啟動。 Internet Explorer 出現,“導航”命令有效。 但是一旦我嘗試隱藏窗口或嘗試使用頁面中的元素,它就會崩潰。
我得到兩種類型的錯誤:
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)
其他時候我會遇到非常相似的錯誤,但它甚至提到了我自己的用戶文件,即使在不同的機器上運行時也是如此。 這是正常的嗎?
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
我試圖用谷歌搜索錯誤,但無法使其正常工作,我將非常感謝您提供任何提示或幫助。
這種方法的關鍵是確保我們正在訪問與我們的進程相關聯的正確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)
{
_IE = Browser;
break;
}
}
然后在像 WaitForCompleteNew()、Navigate() 等方法中,只要您嘗試訪問 InternetExplorer 的屬性或方法,就可以使用對象 _IE。
_IE.Visible = false;
document = ((HTMLDocument)_IE.Document)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.