ユーザーがオフィスドキュメントをアップロードし、オフィスオブジェクトモデルを使用してドキュメントをHTMLファイルに変換し、iFrameに表示できるWebサイトを開発しました。
もちろん、Office.interop.Wordへの参照を含めましたが、このサイトは開発マシンで正常に機能します。本番サーバーにアップロードすると、ドキュメントをアップロードしようとするまでサイトは正常に機能します。最初に、「COMオブジェクトが登録されていません」という同様のエラーが表示されました。 Wordが運用サーバーにインストールされていないことに気付きました。だから私はWordをインストールしましたサーバーがWordオブジェクトモデルにアクセスしようとすると、次のエラーが表示されます:
次のエラーのため、CLSID {000209FF-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリを取得できませんでした:80070005アクセスが拒否されました。(HRESULTからの例外:0x80070005(E_ACCESSDENIED))
レジストリで対応するCLSIDを検索し、対応するフォルダーを見つけました。 IUSR_アカウントにフルコントロールを追加し、エラーが持続するため、最終的に「全員」にフルコントロールを追加し、これらのアクセス許可がフォルダの残りの部分に継承されるようにしました。次に、IUSR_にフルコントロールを追加し、最終的にMicrosoft Officeフォルダーの「全員」にフルコントロールを追加しました。
I この「アクセスが拒否されました」というエラーを解消するために、他にどの許可を許可するかわからない。私が知る限り、間違った場所で許可しなければならない「全員」「フルコントロール」よりも寛容になりません。
誰もが光を当てることができますか?
これは私のために働いた:
DCOMCNFG
を入力しますDCOMCNFG
の代わりにmmc comexp.msc /32
を実行していない場合、Wordが64ビットかどうかを確認します(Windowsの場合)。 ダークシールここ )が提案わかりました、私はこのステップでこの問題を解決しました:
その後、Excel、Word、およびその他のアプリケーションが機能します。幸運を祈ります。
Wordがインストールされているサーバーマシンの[Windowsログ]、[システム]の下のイベントビューアーを確認します。次のようなイベントを記録しますか?
マシンの既定のアクセス許可設定では、CLSID {148BEE7F-6123-41EE-8CCA-E390902BD0D8}のCOMサーバーアプリケーションのローカルアクティブ化アクセス許可がユーザーSomeMachine\SomeUser SID(S-1-5-21-483881670-2168941642- 1987552629-1003)アドレスLocalHostから(LRPCを使用)。このセキュリティ許可は、コンポーネントサービス管理ツールを使用して変更できます。
その場合は、DCOMCNFG.EXEを実行し、コンポーネントサービス、コンピューター、マイコンピューター(または任意の名前)、DCOM Config(何か修正するかどうかを尋ねられた場合は「いいえ」と答えます)およびイベントログメッセージはapplicationの場合、イベントログメッセージ内の名前、ここではアイテム名で検索し、イベントログメッセージがCLSIDの場合(上記の例のように)、 CLSID "{148B ...}"(これは私が貼り付けたランダムなCLSIDです。おそらく上記の000209FF ...と一致します)、[セキュリティ]タブの[その他のアクション...プロパティ]を選択します。
ここで、[x] [カスタマイズ]を選択してから[編集]を選択して、適切なユーザーアカウントにアクセス許可を追加し、必要なDCOMアプリケーションまたはクラスにアクセスします。
それは単なる推測ですが、試してみるか、これらの線に沿って何かを与えます(つまり、DCOMCNFGを介してCLSIDへのアクセスを許可します)。
Microsoft Word 97-2003 DocumentレコードがDCOM構成アイテムにリストされていなかったため、受け入れられた答えを使用してこれを理解するのに苦労しました。 このTechnetブログの投稿 で解決策を見つけました。そこで彼らは問題を正しく説明しました:
64ビットマシンに32ビットMicrosoft Officeをインストールする場合、オペレーティングシステムによっては、32ビットDCOM構成マネージャーを使用してプログラムを表示する必要がある場合があることに注意することが重要です。
Windowsからのx64オペレーティングシステムXP to Windows Server 2008では、DCOMCNFG.EXEの64ビットバージョンは、32ビットDCOMアプリケーションをリモートアクティベーション用に正しく構成しません。この動作により、この動作は、Windows 7およびWindows Server 2008 R2以降のバージョンでは発生しません。
参照: http://msdn.Microsoft.com/en-us/library/windows/desktop/ms678426(v = vs.85).aspx
また、(DCOMCNFG
の代わりに)次のコマンドラインコマンドを効果的な修正として使用することも提案されました。
mmc comexp.msc /32
これにより、64ビットの代わりに32ビットのDCOM構成マネージャーが強制的に読み込まれ、受け入れられた回答内で説明されている手順を実行できます。それでも解決しない場合は、他の考えられる回避策についても説明しています。
このトピックに関する詳細については、ブログで この投稿を読む をご覧ください。
DCOMでMicrosoft Wordアプリケーションが見つからない場合
32ビットOfficeを備えた64ビットシステムでは、これを試してください。
その後