无法将 COM 对象强制转换为接口类型"WUApiLib.UpdateSession c#



我正在使用wuapilib.dll,并编写一个程序来检测可以下载和安装哪些更新。

    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 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)."}

我没有配置防火墙,正如我看到人们在其他主题中所说的有关类似错误的话题,但我不知道为什么我会遇到此错误。知道有什么问题以及如何解决?

RPC服务器不可用

问题中的有时子句是这种错误的正常行为。告诉您您实际上没有配置问题。它非常低,您的计算机根本无法与服务器正确通信。

一个临时网络问题。

这是您无法从程序中恢复过的问题,有人需要修复网络或将服务器恢复在线。因此,您所能做的就是让程序的用户知道您的功能现在不可用。

翻译错误通常不是一个好主意,但是这个错误足以考虑显示出更有帮助的诊断。不透明的东西,例如"我们很抱歉,临时的网络服务中断会阻止我们与服务器联系。请稍后再试一次或与IT员工联系以加快问题。"如果IT员工经常受到困扰,那么他们会做一些使网络或服务器更可靠的事情。这是需要的,更好的硬件,而不是更好的软件。

相关内容

  • 没有找到相关文章

最新更新