2017-02-19 96 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人员经常听到它的话,他们会做一些事情来使网络或服务器更加可靠。这是需要的,更好的硬件,而不是更好的软件。

相关问题