COM コンポーネントは Windows 上でのみ使用できるため、プログラムは Windows サーバー上で実行する必要があります。ローカルでのセットアップとインストールには問題ありませんでした
Wps office 個人版の最新バージョン 12012 をインストールしたら完了したはずですが、プログラム実行時にサーバーに次のようなエラーが報告されました:
致命的なエラー: 捕捉されませんでした例外 'com_Exception' とメッセージ ' COM オブジェクト 'WPS.Application' の作成に失敗しました: アクセスが拒否されました。 ' in D:www9enjoy.comhx.php:12 スタック トレース: #0 D:www9enjoy.comhx.php(12): com->com('WPS.Application') #1 {main} が D:www9enjoy でスローされました。 comhx.php 12 行目
この文を実行すると、 $wps = new COM("WPS.Application"); がエラーを報告します。いくつか検索した後、DCOM 構成でいくつかの構成を作成し、このプロンプトを解決しました。
1. [コントロール パネル] - [管理ツール] - [コンポーネント サービス] を開きます。
2. [コンポーネント サービス] パネルでコンソールのルート ディレクトリを開きます - [コンポーネント サービス] - [コンピューター] - [マイ コンピューター] - [DCOM 構成]
3. Kingsoft Writer Application Class (Kingsoft のドキュメント アプリケーション サービス) を見つけて、プロパティ ウィンドウを開き、[セキュリティ] タブに切り替えます。 「起動およびアクティベーションのアクセス許可」で「カスタマイズ」を選択し、編集して全員のアクセス許可を追加します。 「アクセス許可」も同様です。
このエラー メッセージは成功しましたが、$doc = $wps->Documents->Open($src_filename); の実行時に別のエラーが発生しました。
致命的なエラー: 例外 'com_Exception' がキャッチされませんでしたメッセージ 'エラー [0x800706be] リモート プロシージャ コールが失敗しました。 ' in D:www9enjoy.comhx.php:15 スタック トレース: #0 D:www9enjoy.comhx.php(15):variant->Open('d:www9enjoy.com...') #1 {main} がスローされましたD:www9enjoy.comhx.php の 15 行目
「識別」タブで、スタートアップ ユーザーを対話型ユーザーに変更すると、別のエラー メッセージが表示されます:
致命的なエラー: キャッチされない例外「com_Exception」と「COM オブジェクト `WPS.Application' の作成に失敗しました」というメッセージが表示される: 構成タイプが正しくないため、システムはサーバー プロセスを開始できません。ユーザー名とパスワードを確認してください。 ' in D:www9enjoy.comhx.php:15 スタック トレース: #0 D:www9enjoy.comhx.php(15): com->com('WPS.Application') #1 {main} が D:www9enjoy でスローされました。 comhx.php の 15 行目
繰り返し試行しましたが、WPS の再インストールを含め、何も機能しませんでした。
「identification」タグの後は、指定したユーザーで実行します。最初にWebサイトで使用されているユーザーで実行します。これが失敗すると、パスしません。管理者アカウントを使用して再度実行すると、[OK] をクリックしたときにエラー メッセージがポップアップ表示されます。これら 2 つのオプション (ユーザーの開始とユーザーの指定) のどちらも、この com コンポーネントを開始できないはずです。対話型ユーザーを使用する場合は問題ありませんが、ユーザー名とパスワードが間違っているというメッセージが表示されます: (
事後テストでは、エラーが報告されずに長時間実行されることがありました...次のエラーも発生しました:
致命的なエラー: D:www9enjoy.comhx.php:30 でメッセージ「COM オブジェクト `WPS.Application' の作成に失敗しました: サーバーの実行に失敗しました」を含むキャッチされない例外 'com_Exception' スタック トレース: # 0 D:www9enjoy.comhx.php(30) : com->com('WPS.Application') #1 {main} throw in D:www9enjoy.comhx.php on line 30
中に、また、$wps->Documents->Open の実行が停止し、プロセス内に wps または wpsupdate プロセスが表示され、更新されるたびにそのようなプロセスが最大 30 個以上表示されることもわかりました。
最後に、非常に BT のアプローチを使用して、管理者を使用してこのサイトの IIS 認証方法を実行しました。アカウントにアクセスすると、うまくいきました。