0

Excel と Word を呼び出す .net (VB .Net) のプログラムがあります。すべてのタスクを完了するには多くの時間がかかります (多くのログを読み取り、データを Excel にエクスポートし、グラフィックを作成し、グラフィックを Word テンプレートにインポートします)。

私の最初の解決策は、ASP Web サイトにプログラムを .dll として含めることでしたが、今は却下しました。プログラムの CPU 使用率が高く、すべてのタスクを実行するには数時間かかる場合があります。Web ページは、CPU 使用率の低いプロセスや迅速なプロセスを実行する必要があります。

今、私には2つのオプションがあります:

A) ASP からプログラムを実行します。

set WshShell = server.CreateObject("WScript.Shell") 
wshShell.Run program

B)プログラムを Windows サービスに変換し、MSMQ を介してメッセージを送信するルーチン (ログの読み取り、データの Excel へのエクスポート、グラフィックの作成など) を実行します。

2 つの質問があります。

- 最初に:これらは「良い」解決策ですか? 他に「良い」解決策はありますか?

- 2 番目: プログラムにグラフィック インターフェイスは必要ありません。また、ワードとエクセルもバックグラウンドにあればさらに良いでしょう。これを達成するためのアイデアはありますか?唯一の解決策は、プログラムをWindowsサービスとして使用するオプションB)だと思います。Excel、Word ...は別の「セッション」になり、何も表示されません(これについての別のstackoverflowと、ExcelとWordの作業を行うための問題と解決策を読みました)

4

1 に答える 1

0

B の方が良い選択肢ですが、私は MSMQ の経験がありません。MSMQ が間違ったオプションであることが判明した場合は、再書き込みの少ない他のプロトコルを試すことができるため、WCF+MSMQ を使用することをお勧めします。

オプション A に関しては、ASP クラシックも ASP.NET も、長時間実行されるプロセスを処理するために最適化されていません。リクエストの途中でブラウザが閉じたり、IIS が停止したり、作業負荷を調整するのが難しくなったりします。すべての Web サーバー スレッドが長時間実行されるプロセスを処理している間は、他の無関係なページにアクセスできません。

于 2012-12-03T21:15:01.867 に答える