2011-10-19 16 views
1

私たちは、長年幅広く使用されてきたRTDサーバーアセンブリを構築しました。 (VS 2008、.NET 3.5ターゲットランタイムで構築されました)今日、ユーザーは次の例外を受け取ったと報告しています。IRTDUpdateEventを使用した.NET/COM例外

System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.IRTDUpdateEvent'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{A43788C1-D91B-11D3-8F39-00C04F3651B8}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)). at Microsoft.Office.Interop.Excel.IRTDUpdateEvent.UpdateNotify() at EZomsRTDServer.RTDServer.NotifyExcel()

彼は昨日正しく動作していました。この問題は、彼が.NET 4アップデートをインストールするように促す新しいアプリケーションをインストールすることによって引き起こされたようです。 (彼は既に.NET 4をインストールしていたので、このアップデートの内容は不明です。)ユーザーは、昨日の復元ポイント(.NET 4を実行していた)にロールバックすることで問題を解決しました。しかし、COM互換性問題を引き起こすためにインストール中に何が起こったのかを理解する必要があります。 (彼はExcelやRTDアプリケーションに触れなかった)。

インストールの1つでは、他のCOMクラスのIRTDUpdateEventのGuidが使用されている可能性はありますか?

+0

うーん、いや、.NETの更新はCOMキャストエラーが発生することはありません。 Office PIAやレジストリを混乱させるアプリケーションインストーラは確かにそうです。 –

+0

@ハンス:例外的に印刷されたIID({A43788C1-D91B-11D3-8F39-00C04F3651B8})に他のクラスが登録されているかどうかを調べるために、これを診断する正しいアプローチがありますか? –

+0

これは別の投稿で回答されました: http://stackoverflow.com/questions/10200154/net-rtd-com-excel-interop-errors-on-one-users-machine –

答えて

0

これは別のポストに答えた: .NET RTD/COM Excel Interop errors on one user's machine?

問題は、Excel 2003でのマシンはExcel 2007を持つマシンがそれを作成していた方法と比べ、このCOMオブジェクトを作成していた方法との違いだったようです。

関連する問題