根据SQL Server数据库中的字段自动生成电子邮件

时间:2011-04-11 15:43:19

标签: .net wcf web-services windows-services

我需要在内部网络上运行并根据日期字段监视SQL Server数据库的条件,然后在内部用户满足该条件时生成电子邮件。

尝试重述;它应该监视数据库,当某个字段中的日期到达变量时,它应该生成并向相关用户发送电子邮件。

自动提醒

我已经通过我们的桌面应用程序中的Exchange Server发送电子邮件,所以我相信我在电子邮件部分很好。我没有做过很多网络开发,所以我想知道在回答我的问题时我是否正在寻找Web服务。

我曾经写过一个监控网络位置的Windows服务,并根据那里的事件生成一封电子邮件,这有类似吗?如何从Windows服务与SQL Server数据库交互?那么WCF怎么样呢?

我只是想确保我正朝着正确的方向前进。

2 个答案:

答案 0 :(得分:3)

我做了同样的事情,Windows服务比特定情况下的Web服务要好得多。

您无法使用Web服务自动监控某些内容;您必须有另一个进程(通常是Windows服务),它将查询Web服务以触发它的执行。

顺便说一句,既然您正在监控数据库,您也可以从SQL server trigger发送电子邮件,但由于您在基于日期字段的条件下进行,因此这不是一个好方法。 / p>

答案 1 :(得分:2)

如果要监视MS SQL数据库中的一个或多个表,我认为使用触发器 sql jobs 是你应该去的方式。 (我个人没有使用触发器的经验,但我认为它们就像表格的事件)。

但在另一个解决方案中:

您可以开发 Windows服务。在Windows服务中放置一个计时器(假设它每隔1分钟就会过去一次),并在计时器结束时检查需要什么,然后等待下一个事件。

在这种情况下,您可以检查许多其他条件,例如:Ping IP,在数据库上运行查询,检查文件等......

Web服务是不同的东西,它们不是您现在所需要的。 Web服务就像是一个应用程序的网关或 api 。当您使用Facebook的API时,实际上您正在连接到Web服务。

更新:

关于 WCF :假设WCF是实现Web服务的更酷的方式。它不仅在开发Web服务时提供更强大的功能 。您可能希望应用程序通过 TCP频道与其他应用进行通信。它也是.Net远程处理的继承者。

MSDN上的WCF:http://msdn.microsoft.com/en-us/netframework/aa663324.aspx