2017-02-19 14 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)."} 

I私は人々が同様のエラーに関する他のトピックで言うことを見たようにファイアウォールを構成していませんが、私はなぜこのエラーが表示されているのか分かりません。 何が問題なのですか?どのように解決できますか?

答えて

0

リモートプロシージャコール(RPC)サービスが実行されているかどうかを確認します。

実行中の場合は、ワークステーションとサーバーの間にファイアウォールの問題がある可能性があります。ファイアウォールを一時的に無効にしてコマンドを再試行して、テストすることができます。

それともので、あなたとターゲットコンピュータ

+0

RPCサービスが実行されていますが、私はこれまでのところファイアウォールを実行していません。接続に問題はありません。 –

1

The RPC server is unavailable

問題の時々句間のネットワーク接続の問題であってもよいですがこの種のエラーの正常な動作です。実際に設定に問題がないことを伝えます。それは非常に低レベルです、あなたのコンピュータは単にサーバーと正しく通信できません。

一時的なネットワーキングの問題。

あなたのプログラムでは回復できない種類の問題です。誰かがネットワークを修復したり、サーバをオンラインに戻したりする必要があります。だから、あなたのプログラムのユーザーには、今すぐあなたの機能が利用できないことを知らせることができます。

通常、エラーを翻訳するのは良い考えではありませんが、これは有用な診断を示すのに十分なことです。 「一時的なネットワーキングサービスの中断により、サーバーに接続できなくなった。後でやり直すか、IT担当者に連絡して問題を迅速に解決してください」などの不透明なものがあります。 ITスタッフが頻繁に盗聴された場合、ネットワークやサーバーをより信頼できるものにするために何かをやります。それはより良いソフトウェアではなく、より良いハードウェアを必要とするものです。

関連する問題