3

我想为我们的中型消费者网站实现一个 POP3 邮箱处理组件。我们的站点使用 IPSwitch 作为 mail/smtp/pop 主机。

该处理组件将让我们提供“通过电子邮件回复此留言板讨论”类型的服务。它需要不断运行;或者至少,每 3-5 分钟一次。

我很确定我知道在 C# 中实现这个 POP3 阅读器需要做什么,我只是不确定使它每 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 上,我没有 Visual Studio,所以我无法为您提供确切的步骤,但是在您创建 Windows 服务项目之后,添加一个安装程序。我相信您会想要右键单击该服务,您会看到一个添加安装程序的选项。

我在制作服务时所做的就是将 100% 的逻辑放在服务之外的类中。然后我添加了一个控制台程序并添加了一个引用,这样我就可以轻松地运行控制台程序(这反过来又导致了逻辑的发生)。

于 2010-02-14T15:53:01.967 回答
-1

好的,这个关于在 C# 中创建 Windows 服务的教程似乎正是我所需要的。有什么需要注意的问题吗?感谢您的任何建议。

在 C# 中创建 Windows 服务

于 2010-02-13T04:24:29.367 回答