12

Office 2007/2010 オートメーションを使用する単純な asp.net Web サイトを作成しています。ローカル マシン (ウィンドウ 7) の iis 7 で Web サイトを公開すると、例外が発生します。

 Retrieving the COM class factory for component with CLSID 
 {000209FF-0000-0000-C000-000000000046} failed due to the following error: 
 80080005 Server execution failed (Exception from HRESULT: 0x80080005 
 (CO_E_SERVER_EXEC_FAILURE)).

この例外を検索したところ、DCOM Config で office にいくつかのアクセス許可を設定する必要があることがわかりました。

コンポーネント サービスを開き、DCOM Config を開きましたが、Microsoft Word ドキュメントが見つかりませんでした。office word 97 - 2003 しか見つかりませんでした。

誰でもこの問題を解決する方法を教えてもらえますか?

4

2 に答える 2

22

ここで答えを見つけました: Office オートメーションの DCOM 障害

32 ビット Office で 64 ビット サーバーを実行している場合、この DCOM 設定を見つけるのに問題が生じることがあります。コマンド プロンプトから "MMC -32" を実行して 32 ビット MMC を起動し、[ファイル] > [スナップインの追加と削除] メニューから [コンポーネント サービス] を追加する必要があります。

于 2012-09-26T01:53:32.777 に答える
8

はい、office word 97 - 2003は、DCOM ドキュメント (アプリケーション) Word 2007 または 2010 の権利名です。理由は聞かないでください...

問題はどこにあるのでしょうか?

ユーザーはデスクトップにアクセスできる必要があります。Word が ASP.NET から呼び出された場合、おそらくこのアクセス権はありません。そのため、 dcomcnfg.exeでアカウントを明示的に設定します。The launching user (これは IIS ID であり、独自のデスクトップはありません) を使用しないでください。また、The interactive userを使用しないでください(一部のユーザーがログインしている場合にのみ機能します)。

私のソリューションでは、次のように設定しました。

  • WordUserという新しいユーザーを(ユーザーグループに)作成しました
  • WordUser 権限を使用して、IIS で新しいアプリケーション プールを作成しました。ユーザー プロファイルの読み込みはtrueでなければなりません
  • DCOM WordUser を使用するように設定し、 [セキュリティ] タブで WordUser を追加し、起動とアクティブ化のアクセス許可アクセス許可を追加しました

たぶん別の方法が可能ですが、これはうまくいくはずです。

于 2013-05-10T11:19:59.500 に答える