实现数据库变更通知

2010-05-20  籽藤 

  在上一篇博文里我提到了“监视MSSQL的小工具”。为了便于今后的学习和使用,特别做一些说明。

  • 开发环境:VS2008
  • 语言:C#
  • 核心技术:Windows Service开发、MSSQL的SqlDependency特性、通过TCP命令发送Email
  • 使用场景:在配置文件中定义SMTP服务器、数据库等相关参数;安装Windows Service,等服务启动后,所监控数据库的表新增了一条数据,即发送邮件告知。

注意:1.为数据库启动监听服务:ALTER DATABASE <DatabaseName> SET ENABLE_BROKER;

           2.确保配置文件中定义的Username是该数据库的Admin角色

Q&A:

为什么使用SqlDependency?

SqlDependency是MSSQL2005之后的新特性,它与2000最大的不同是:2000 是用轮询的机制去实现的,所以不论是时效性和性能都会差一些;而2005是通过双方通讯监听机制实现的,所以在效率上有一定优势。

为什么用TCP命令发Email?

 我并不是不知道可以利用System.Net.Mail下的MailMessage和SmtpClient类来实现。但是目前这个工具是在ASB域里面使用,而如果使用System.Net.Mail方式,要使用第三方SMTP服务器的话,貌似要指定userName和Password,并确保发件人的Email地址是该Host下的。(即:你的Host是:smtp.126.com;则From地址类似于:wuziteng2006@126.com而不能是wuziteng2006@163.com

问题来了――在ASB域中,其他的SMTP服务器都不能访问,只能用ASB给我们提供的SMTP。而我们又不好劳烦用户帮我们再ASB申请邮箱~So,没有ASB的邮箱,就不能通过System.Net.Mail的方式发送Email了……

下载:

http://download.csdn.net/source/2373041

欢迎讨论:wuziteng2006@hotmail.com

 

       



 

355°/3552 人阅读/0 条评论 发表评论

登录 后发表评论