0

ASPWebアプリケーションでWord文書を作成および操作するためにMicrosoftWord2007を使用する必要あるユーザーがいます。「 Officeのサーバー側自動化に関する考慮事項」KBの記事と、この種のことを実行するために利用できる多くのサードパーティコンポーネントについてはよく知っていますが、すでにかなり進んでいます。

彼が抱えている問題は、彼がアプリケーションオブジェクトWINWORD.EXEを呼び出しても、プロセスが終了しないことです。Quit

例えば:

Set objWord = Server.CreateObject("Word.Application")
'' Do work
objWord.Quit
Set objWord = Nothing

WINWORD.EXE ご想像のとおり、彼のサーバーは、終了するために手動の介入を必要とする孤立したプロセスでいっぱいになってしまいます。

WINWORD.EXEスクリプトでこれらのプロセスを明示的に終了する方法はありますか?

アップデート:

私はこれでいくらかの進歩を遂げました、そして私は問題が何であるかについてのハンドルを持っていると思います。Officeアプリケーションが新しいWindowsアカウントで初めて実行されると、名前とイニシャルの入力を求められます。目に見えるGUIがないため、すべての適切なボタンを押す人は誰もいません。WINWORD.EXEを使用してWebサイトの匿名アカウントIDとして開始しようとしましRUNASたが、WordまたはOfficeが実行したい他の種類の初期セットアップルーチンを実行できないという許可の問題があります。

4

2 に答える 2

2

私が考えることができる2つのことがあります:

MyWorkBook.Savedがtrueに設定されていません。その結果、Quit呼び出しにより、WinWordに「保存しますか」ダイアログが表示されます。サーバー上。デスクトップのないセッション中。言うまでもなく、Wordはユーザーを待っているため、なんとか終了することはありません。

ユーザーのスクリプトが常にQuit行に到達するとは限りません。インスタンスが適切にクリーンアップされるようにするには、例外処理と最後のステートメント(VBScriptまたはASPクラシックエンジンの長所ではありません)の複数のレイヤーが本当に必要になるため、これはOfficeAutomationを使用することに対する頻繁でおそらく最大の理由です。

于 2009-06-10T12:19:28.627 に答える
0

この質問はもはや関係ありません。ほとんどすべての問題はWINWORD.EXE、特定のタスクを実行するために昇格された権限 (Web サイトの匿名ユーザー アカウントに許可されているよりも高い権限) を要求することに関連していました。

顧客は賢明にもASPOSE.Words for .NETを使用することを決定しました。これには、COM 呼び出し可能なラッパーも含まれているため、従来の ASP コードでも使用できます。

于 2009-06-15T16:53:02.813 に答える