0

32 ビット サーバーに IBM Rational ClearQuest をインストールし、提供された API を使用するプロセスを作成しました。そして、完璧に機能します。

これを別のサーバー(64ビット)に移行すると、スローされます

次のエラーのため、CLSID {94773112-72E8-11D0-A42E-00A024DED613} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80040154。

レジストリに行って (両方のサーバーに) 何があったかを確認しましたが、最初のレジストリには、この API dll が配置されている場所に関するいくつかのキーがありましたが、64 ビット サーバーにはありませんでした。(フレームワークに関するキーもありました)

これを見るためにウェブで調査しました。

次に、私のオプション(少なくとも私が考えることができる唯一のもの):

  • CQをアンインストールして再インストールします(これを行い、製品のインストールとアンインストールがクラッシュした後、実際の問題に変更を加えることなくバックアップされました)
  • 必要な dll を regsrv32 に登録します (機能しませんでした)
  • 自分でキーを追加します(これも機能しませんでした)

今日、この cscript を見てきました。ここでは Windows Script Host を使用していますが、c# では機能しません。

おそらくc#.Net2008で、コンパイラが「任意の」マシンと言うとき、それは明らかに両方を意味します...しかし、念のために64ビットにのみ変更しました...

そして、何を推測します...はい、あなたは正しいです...それもうまくいきませんでした。

あなたが私を助けてくれることを願っています。前もって感謝します。-


編集:

  • ベース dll の C:\Windows\Microsoft.Net\v2.050727\ の InstallUtil が機能しませんでした
  • asp_regiis(念のため試しました)が機能しませんでした
4

2 に答える 2

2

レジストリキーが見つからなかったという事実は、もちろん問題の原因です。32ビットCOMサーバーのホームであるHKLM\Software \ Wow6432Node \ Classes\CLSIDに戻ってくる可能性があります。それらが正しくインストールされていると仮定します。

つまり、ジッターが64ビットコードを生成することを許可することはできません。64ビットプロセスは32ビットコードを実行できません。プロジェクト+プロパティ、ビルドタブ、プラットフォームターゲット=x86は簡単な修正です。

于 2011-08-05T12:55:17.547 に答える
1

問題は Windows Server 2008 UAT 保護でした

Web で検索すると、登録しようとしたときにエラー 5 Access Denied がスローされていることがわかりました

これが解決策です

[コントロール パネル] --> [ユーザー アカウント] --> [ユーザー アカウント制御のオンまたはオフの調整] に移動します。「ユーザー アカウント制御 (UAC) を使用してコンピューターを保護する」をオフにして、コンピューターを再起動します。「APIを使用したプロセス」を再度実行すると、機能しました。

于 2011-08-08T20:08:49.023 に答える