我正在使用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时遇到错误:
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 :(得分:1)
RPC服务器不可用
问题中的有时子句是此类错误的正常行为。告诉您实际上没有配置问题。它非常低级,您的计算机无法与服务器正确通信。
临时网络问题。
这是您无法在程序中恢复的问题,有人需要修复网络或让服务器重新联机。因此,您所能做的就是让程序的用户知道现在您的功能不可用。
翻译错误通常不是一个好主意,但这个错误足以考虑显示更有用的诊断。一些不透明的东西,比如“我们很抱歉,暂时的网络服务中断使我们无法联系服务器。请稍后再试或联系IT人员以加快解决问题。”如果IT人员经常对其进行窃听,那么他们会做一些事情来使网络或服务器更可靠。这需要什么,更好的硬件,而不是更好的软件。