0

アプリケーションのデータを外部サービスのデータと同期させたいと考えています。(会計ソフトウェアなど。この同期は、毎晩、顧客が望むときに実行する必要があります。

長時間実行されるスレッドはWebアプリケーションに属していないことを認識しています。この同期は、外部のWindowsサービス内で実行する必要があります。ただし、この方法の欠点は、アプリケーションを顧客のWebサーバーにもインストールできるため、展開/保守が難しくなることです。

この同期を、Application_Startイベントで起動するソリューションでクラスライブラリプロジェクトを使用するだけで完全に統合することは可能ですか?

4

1 に答える 1

2

アプリケーションはIISでホストされているため、アプリケーションプールプロセスによって維持されます。タスク用に追加のモジュールを作成すると、同じプロセスのコンテキスト内で実行されます。必要な同期を実行するには、アプリケーションが使用されていない深夜でもこのプロセスが機能していることを確認する必要があります。Quartz.NETを使用して、同期タスクをスケジュールできます。

それでも、Windowsサービスから同期を実行する方がはるかに良い考えだと思います。サービスは、たとえばデータベースを使用してアプリケーションと通信する必要があります。データベースでは、現在のアクティビティがログに記録されます。このようなデータベースに接続することにより、Webからサービス状態を監視することができます。サービスが追加の管理作業を強制することは知っていますが、はるかに信頼性が高く、安全です。また、Webアプリケーションからサービス開始の可能性を追加して(プールプロセスユーザーがWindowsサービスへのアクセス権を持っている場合)、障害後のサービスの再起動に関連する管理作業を克服(または少なくとも最小化)することもできます。

私はそのような機能を書いたので、そのような外部サービスのWeb監視が意味することの全体像を示すために、以下の画面を確認してください。エンドユーザーにとって便利な応答性(プーリングメカニズム)を実現するために、ajaxサポートを使用して作成できます。

ここに画像の説明を入力してください

于 2012-12-12T12:23:08.270 に答える