【解決方法】Word オートメーションが Windows サーバーで機能しない

プログラミングQA


ローカルで正常に動作する単語自動化プロジェクトを作成しましたが、Windows サーバーにインストールしたかのように動作せず、クラスが登録されていないために失敗したと表示されます

MS Officeがサーバーにインストールされていない場合、単語の自動化は機能しないことをインターネットで調査しました
サーバーに Word をインストールできず、コンポーネントもそこに存在しません

OpenXML を使用するように変更した場合、全体を変更する必要があります。

そのための解決策が必要です
いくつかの情報を提供する

前もって感謝します

私が試したこと:

これは私がErrorLogで得たエラーです

Catch Exception : Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

解決策 1

ドキュメントの状態(太字の鉱山)

見積もり:

Microsoft Office の現在のバージョンはすべて、クライアント ワークステーションでエンド ユーザー製品として実行するように設計、テスト、および構成されています。 インタラクティブなデスクトップとユーザー プロファイルを前提としています. これらは、無人で実行するように設計されたサーバー側コンポーネントのニーズを満たすために必要なレベルの再入可能性またはセキュリティを提供しません。

Microsoft は現在、Office が不安定な動作を示す可能性があるため、無人の非対話型クライアント アプリケーションまたはコンポーネント (ASP、ASP.NET、DCOM、および NT サービスを含む) からの Microsoft Office アプリケーションの自動化を推奨しておらず、サポートもしていません。または、この環境で Office を実行するとデッドロックが発生します。

サーバー側のコンテキストで実行される解決策を構築している場合は、無人実行に対して安全になっているコンポーネントを使用するようにしてください。 または、コードの少なくとも一部をクライアント側で実行できる代替手段を探す必要があります。 サーバー側の解決策から Office アプリケーションを使用する場合、アプリケーションは正常に実行するために必要な機能の多くを欠いています。 さらに、解決策全体の安定性に関してリスクを負うことになります。

参照: Office のサーバー側の自動化に関する考慮事項 – Microsoft サポート[^]

自動化プロジェクトを再考するか、OpenXML を使用するように書き直す必要があるようです。 本当に Word が必要ですか、それとも作成するものがテキスト、RTF、またはその他の形式のドキュメントである可能性がありますか?

コメント

タイトルとURLをコピーしました