19

WCF の初心者です。24 時間年中無休で実行され、メールボックスからメールを受け取り、いくつかのレポートを作成するアプリケーションを作成する必要があるというシナリオがあります。winform を使用して実行しましたが、うまくいきました。ホストされたアプリケーションには、サーバーが一定期間非アクティブになったときにアプリケーションを閉じる自動ログオフ ポリシーがあります。ウィンドウ サービスとして実装できると思いました。このシナリオで推奨される WCF サービスはありますか?私にとっては学習曲線になるので、WCF サービスを考えました。アドバイスをお願いします。

更新: タイマーに基づいて動作するアプリケーション。5 分ごとに特定のメールボックスに ping を送信して新しいメールを確認します。新しいメールが見つかった場合は、Excel で作成された PDF レポートをダウンロードし、いくつかの電子メール ID に返信します。

使用する DLL : OpenPOP と Itextsharp。

4

3 に答える 3

25

Windows サービスが必要です。

WCF は通信ライブラリです。クライアント経由でアプリケーションと通信する予定がない限り、WCF は必要ありません。

問題はアクティベーションに関連しており、コードをバックグラウンドでアクティブに保つことは、Windows サービスが行うことです。

難しいことではありません。これは、始めるのに役立ちます。

http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

于 2012-10-18T18:57:24.983 に答える
3

WCF は、Web サービスを実行している場合にのみ役立ちます。ここでは、通常の Windows サービスでニーズを満たすことができます。マシンが稼働している限り、サービスは実行し続ける必要があります。

于 2012-10-18T18:55:28.143 に答える
0

サーバーがアクティブになるまでアプリケーションが目的どおりに動作し、問題なく動作する場合は、サーバーが非アクティブ状態にならないように設定して問題を解決することを検討する必要があります。

言い換えれば、サーバー自体がスタンバイ(非アクティブ)モードになることは決してないため、あなたが話しているポリシーは非アクティブな人間のユーザーに対してのみ実装されていると思います-ポリシーはおそらくシステムレベルに影響を与えます(そしてすべきではありません)ユーザー。

そのため、システム ユーザー (またはネットワーク ユーザー) としてアプリケーションを実行する場合、問題は解決するはずです。

あなたの説明に基づいて、WCF は次の 2 つの理由から問題の適切な解決策ではありません。

  1. WCF は、WCF サービスを使用する別のアプリケーション (クライアント) がある場合に役立ちます) - アプリでクライアント/サーバー サービスが必要なようには思えません。
  2. 現在のアプリケーションを実行しているのと同じユーザーとして WCF サービスを実行する場合、問題は依然として存在します (つまり、ポリシーにより、WCF サービスは最終的に非アクティブになります)。
于 2012-10-18T18:51:13.200 に答える