2

C# GUI が Windows サービスの機能にアクセスするための最良の方法に興味があります。それは、WCF であれ、ServiceController であれ、その他のオプションであれ、です。

私が何をしているのかを説明します: 規制された時間間隔で、サービスは場所 A から 1 時間分のデータファイルを圧縮し、圧縮されたファイルを場所 B に送信します。これはバックグラウンドで 24 時間 365 日、またはサービスはユーザーによって停止され、誰もログインしていない場合でも実行されます (したがって、サービスが必要です)。ユーザーがいくつかのオプションを使用できるようにする GUI プログラムをプルアップできるようにしたいと思います。

1) 場所を zip
に変更する 2) 場所を zip に変更する
3) 指定された DateTime 範囲の zip プロセスを手動で開始する

これで、zip とタイマーのほとんどの関数がすべてサービス内に格納されます。GUIプログラムのServiceControllerを使用して、サービスとの間で変数を送受信できるかどうか(つまり、フォルダーパス名を文字列、その他のさまざまなデータとして)、またはWCFの作成に時間を費やしてGUIを次のように扱う必要があるかどうか疑問に思っていますクライアントとソースとしての Windows サービス。

GUI はサービスからデータを受信する可能性が高いことに注意してください。ただし、現在圧縮中であるかどうかを示すためだけです。

4

2 に答える 2

4

1 つのオプションは、Windows サービスに埋め込まれた WCF サービスを使用することです。この WCF を使用すると、サービスを再起動せずに動作を制御できます。

しかし、IMO の最良のオプションは、これを構成ファイルに含めることです。いくつかのキーを追加できますが、構成を更新するときにサービスを再起動する必要があります。この場合、このスレッドのように回避策を試すことができます。config は、この種の詳細に適しています。なぜなら、config は簡単に変更でき、データベースとは異なり、常に利用できるからです。

于 2013-08-08T18:46:03.043 に答える