2016-07-20 22 views
2

IISにhost1というサービス1というWCFサービスがあります。WCFサービスのホスティング技術

私たちは別のWCFサービス、例えばservice2を作成しています。これはバックグラウンドで常に実行され、XなどのファイルにService1が消費する十分なデータがあるかどうかを監視します。

ファイルXに十分なデータがない場合、service2はデータをファイルにロードする別のコンポーネントを呼び出します。

上記のすべての要件を満たし、サービス2がダウンしている場合はサービス1に、サービス2には影響しない場合は、独立している必要があります。これらのサービスは、どちらも同じapp-domainの一部です。

私たちはウィンドウサービスと同じものをホストしたシナリオを1つ持っています。今我々は何か他のものを試してみたいと思っている。

貴重なご意見をお寄せください。

+0

私は私の編集で "アプリ・ドメイン" に "腹部" に変更。私はこれが正しいことを願っています。 –

+0

なぜWindowsサービスがあなたにとって適切なソリューションではなかったのですか? –

+0

こんにちはTom..修正のためにありがとう:) Windowsサービスは、私たちの要件を満たす正しいソリューションですが、新しいシステムを構築していて、基本的に何か新しいものを試すことを考えていました。 –

答えて

1

あなたは釘を打つための正しいドライバーを探しています。 WACFサービスは、ネットワークアクティビティに基づいてオンデマンドで実行されます(要求が入って、サービスが実行され、要求を処理します)。ただし、アクティビティが定義されていない期間が経過すると、サービスはシャットダウンされ、リソースは解放され、サーバーは次の要求を待機しますが、必要なデータを含むファイルが存在するためこの種類の要求は作成されません。

必要なものは、Windowsサービス(サービスコントロールパネルに表示されるもの)です。これらは継続的に実行され、必要なデータがあるかどうかを監視するなど、ネットワーク要求を生成しないタスクに適しています。

私たちはウィンドウサービスと同じものをホストしました。今我々は何か他のものを試してみたいと思っている。

本当に無人操作に適したものはありません。 WCFサービスはそうではありませんが、Windowsサービスはこのタイプのタスク用に設計されています。

+1

貴重なフィードバック。 :) しかし、窓のサービスとは別に、これを実装するために何か考えていることがありますか? –

+0

WCFに「自分のファイルをチェック」サービスを書いてwget.exeのようなもので実行することができます。 (* nixユーティリティのWindowsクローン)、あなたがスケジュールされたタスクを形成することを意味します。それは醜いハックですが、うまくいくでしょう。残念ながら、ユーザーがログインしなくても、条件を確認してアクションを実行する方法は限られています。 –

+0

SQLサーバーをお持ちの場合は、SSISで同様の操作を行うことができます。 –

0

あなたのホスティング要件とは別に、FileSystemWatcherをまだ使用していない場合は、それも考慮する必要があります。あなたの要件を満たすために、あなた自身のロジックを追加する必要があります。

Basicの例:

protected override void OnStart(string[] args) 
{ 
    FileSystemWatcher Watcher = new FileSystemWatcher("some file path"); 
    Watcher.EnableRaisingEvents = true; 
    Watcher.Changed += new FileSystemEventHandler(Watcher_Changed); 
} 

// This event is raised when a file is changed 
private void Watcher_Changed(object sender, FileSystemEventArgs e) 
{ 
    // your code here 
} 

より完全な例:

http://www.rhyous.com/2012/11/27/c-creating-a-service-to-monitor-a-directory/

関連する問題