我有一个SQL Server数据库,它在几个ASP.NET(VB.NET)网站之间共享,数据库有一个存储客户查询的表 - 我希望提供电子邮件通知,通知组织内部人员的新查询(并可能将一些查询数据放入电子邮件正文中)。请问有人可以根据如何实施这些方案来概述我的选择吗?
我的想法是:
选项3似乎是可取的,因为我知道如何在VB.NET中执行此操作并且它是微不足道的。
任何帮助都非常欢迎! 感谢。
答案 0 :(得分:5)
1),2)和3)之间唯一值得考虑的是2)。 1)是一个死产,使用一个被弃用的功能因其问题和问题而臭名昭着。 3)是一个坏主意,因为它打破了事务一致性(即使插入回滚,也发送了的SMTP邮件),并且因为调用者(可能是你正在呈现的网页)必须等待,这是一种性能损失直到SMTP交换完成(即同步)。只有2)提供事务一致性并且是异步的(在SMTP完成之前不会阻止调用者)。
通常,此类任务可以更好地委派给Reporting Services任务。您可以使用Data-Driven subscription创建email delivery。这是开箱即用的,无需重新发明轮子。
答案 1 :(得分:1)
我已经处理过与此类似的情况,我采用的解决方案是让C#windows服务每分钟检查一次SQL服务器作业队列。此作业队列将包括发送电子邮件等作业。然后,您可以在桌面上使用TRIGGER插入一个新的“电子邮件警报”作业,该作业将在下一个周期中被接收。