3

中規模の消費者向けWebサイトにPOP3メールボックス処理コンポーネントを実装したいと思います。当サイトでは、mail / smtp/popホストとしてIPSwitchを使用しています。

この処理コンポーネントを使用すると、「この掲示板のディスカッションに電子メールで返信する」タイプのサービスを提供できます。常に実行する必要があります。または、少なくとも3〜5分ごとか何か。

このPOP3リーダーをC#で実装するために何をする必要があるか確かですが、3〜5分ごとに実行され、マシンの再起動時に実行され続けるメカニズムなどはわかりません。タスクスケジューラは少し壊れやすいようです。代わりに、これをWindowsサービスとして作成する必要がありますか?もしそうなら、C#でインストール可能なサービスを書く方法についていくつかの良い指針を得ることができますか?または、IISボックスでデーモンを実行するためのより良い計画がある場合は、それをいただければ幸いです。

4

3 に答える 3

1

アプリケーションが生きている限り続くバックグラウンドでスレッドを実行することができます。したがって、global.asaxで、Application_Startで次のようなものを実行します。

Thread  thread = new Thread(new Task());
thread.Start();

とあなたのタスク:

private void Task()
{
//do something
Sleep(TimeSpan.FromMinutes(15).ToMilliseconds());
}

上記のコードはテストしていませんが、動作するはずです。次のリンクは、単純なスケジューラを構築するチュートリアルを示しています。

http://nayyeri.net/how-to-build-a-task-scheduler-system-for-the-asp-net-part-1

アプリケーションがまだ実行/初期化されていない場合、タスクは実行されないことを覚えておいてください。ただし、これはシナリオでは問題ではないと思います。

于 2010-02-17T18:20:04.223 に答える
0

このPCにはVisualStudioがないため、正確な手順を実行できませんが、Windowsサービスプロジェクトを作成した直後に、それにインストーラーを追加します。サービスを右クリックすると、インストーラーを追加するオプションが表示されると思います。

サービスを作成するときに私が行ったことは、ロジックの100%をサービス外のクラスに配置することです。次に、コンソールプログラムを追加し、参照を追加して、コンソールプログラムを簡単に実行できるようにしました(これにより、ロジックが発生しました)。

于 2010-02-14T15:53:01.967 に答える
-1

OK、C#でWindowsサービスを作成するこのチュートリアルは、まさに私が必要としているもののようです。知っておくべき落とし穴はありますか?アドバイスありがとうございます。

C#でのWindowsサービスの作成

于 2010-02-13T04:24:29.367 に答える