2017-02-19 90 views
6

我正在使用WUApiLib.dll,並編寫程序來檢測可以下載和安裝哪些更新。無法將COM對象轉換爲接口類型'WUApiLib.UpdateSession c#

Type t = Type.GetTypeFromProgID("Microsoft.Update.Session", "10.81.4.213"); 
    UpdateSession session = (UpdateSession)Activator.CreateInstance(t); 

    ISearchResult SearchResults = UpdateSearchResult.Search("IsInstalled=0"); 
    foreach (IUpdate x in SearchResults.Updates) 
    { 
     Console.WriteLine(x.Title); 
    } 

大部分作品完美,但在某些情況下,我得到一個錯誤的鑄造UpdateSession時間:

UpdateSession session = (UpdateSession)Activator.CreateInstance(t); 

,出現以下錯誤:

{"Unable to cast COM object of type 'System.__ComObject' to interface type 'WUApiLib.UpdateSession'. 
This operation failed because the QueryInterface call on the COM component for the interface 
with IID '{918EFD1E-B5D8-4C90-8540-AEB9BDC56F9D}' failed due to the following error: 
The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)."} 

我沒有配置防火牆,因爲我看到有人在類似的錯誤的其他主題中說,但我不知道爲什麼我得到這個錯誤。 任何想法是什麼問題以及我如何解決它?

回答

0

檢查遠程過程調用(RPC)服務是否正在運行。

如果它正在運行,那麼可能是您的工作站和服務器之間的防火牆問題。您可以通過臨時禁用防火牆並重試命令來測試它。

或者它可能是因爲你和目標計算機

+0

RPC服務正在運行,到目前爲止我沒有運行防火牆。沒有連接問題。 –

1

The RPC server is unavailable

在討論的有時子句之間的網絡連接問題是這種錯誤的正常行爲。告訴你,你實際上沒有配置問題。這是非常低級的,你的電腦可能無法正確地與服務器通信。

臨時網絡問題。

這是在程序中無法恢復的問題,有人需要修復網絡或使服務器重新聯機。所以你所能做的就是讓你的程序的用戶知道現在你的功能不可用。

翻譯錯誤通常不是一個好主意,但是這個錯誤足以讓人想起更有用的診斷。 「我們很抱歉,臨時的網絡服務中斷使我們無法聯繫服務器,請稍後重試或聯繫IT人員加速解決問題。」如果IT人員經常聽到它的話,他們會做一些事情來使網絡或服務器更加可靠。這是需要的,更好的硬件,而不是更好的軟件。

相關問題