2009-06-10 16 views
0

にはのユーザーがおり、Microsoft Word 2007を使用してASP Webアプリケーションでワードドキュメントを作成して操作することができます。私は、 'Considerations for server-side Automation of Office' KBの記事とこの種のことをするために利用できる多くのサードパーティのコンポーネントをよく知っていますが、すでにこの道を歩み寄っています。従来のASPでWINWORD.EXEを使用する場合、どうすれば終了できますか?

彼が持っている問題は、アプリケーションオブジェクトでQuitを呼び出したにもかかわらず、WINWORD.EXEプロセスが終了しないということです。例えば

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

は、あなたが期待したように、彼のサーバーが終了する手動の介入を必要と孤立WINWORD.EXE プロセスが散らばってしまいます。

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

更新:

私はこれでいくつかの進歩を遂げてきたと私は問題が何であるかのハンドルを持っていると思います。新しいWindowsアカウントでOfficeアプリケーションを初めて実行すると、名前と頭字語が要求されます。今や目に見えるGUIがないので、すべての右ボタンを押し込む者は誰もいません。私はRUNASを使用してウェブサイトの匿名アカウントIDとしてWINWORD.EXEを開始しようとしましたが、WordやOfficeが何らかの初期設定ルーチンを実行するのを妨げるいくつかの許可問題があります。 .Savedがtrueに設定されていない

MyWorkBook:

答えて

2

は、私は考えることができる2つの事があります。その結果、WinWordが終了すると「保存しますか?」というダイアログが表示されます。サーバー上。デスクトップなしのセッションの下で。言うまでもなく、Wordはユーザーを待っているときに終了することは決してありません。

あなたのユーザーのスクリプトは、必ずしもQuit行に書いているとは限りません。これは、インスタンスが適切にクリーンアップされることを保証するために、複数のレイヤーの例外処理と最終的なステートメント(VBScriptまたはASPクラシックエンジンの強力なポイントではない)が必要なため、Office Automationの使用に対して頻繁に、おそらく最大の理由です。

+0

David - 入力いただきありがとうございます。上記のスクリプトは、Word.Applicationをインスタンス化してからQuitを実行しても、処理が残っています。 MyWorkBook.Savedを設定する必要がありますか? – Kev

+0

もう1つのことは、ConnectKindがckNewInstanceであり、AutoQuitがTrueに設定されていることを確認することです。これは、Wordが再利用のために開いたままにされているあらゆる状況を処理します。サーバー上で実行されているWordのバージョン(Word 2003でオートメーションを使用していない、2007年には試していません) – David

+0

Word 2007です。ConnectKindとAutoQuitはどちらのオブジェクトですか? – Kev

0

この質問はもう関連性がなくなりました。ほとんどすべての問題は、特定のタスクを実行できるように昇格された特権(Webサイトの匿名ユーザーアカウントを許可している以上)を必要とするWINWORD.EXEに関連していました。

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

関連する問題