当某些日期发生或满足某些业务条件时,我们需要能够发送自动电子邮件。我们正在建立这个系统来处理现有的ASP.NET网站。我和其中一位开发者聊了一下,并讨论了一些问题。在ASP.NET中执行批量处理页面
注意事项:
- 所有我们需要的信息在ASP.NET网站已经建模
- 有所需的邮件生成这也是该网站的一些业务逻辑已经
我们认为理想的解决方案是安排一个单独的可执行文件,该文件计划在夜间运行并执行处理和电子邮件。该解决方案有两个主要问题:
- 如果网站被更新(业务逻辑或模式),但可执行文件意外丢失,则可执行文件可以停止发送电子邮件,或者更糟的是,基于过时的逻辑将送给他们。
- 我们希望使用类似this使用用户控件到模板中的电子邮件,我不相信这是可能的ASP.NET网站
的第一个问题之外本来可以避免与构建和部署脚本(我们现在正在研究),但我认为我们不能解决第二个问题。
因此,我们决定的解决方案是有一个由SSIS定期调用的ASP.NET页面,并执行一定数量的处理(例如30秒)然后返回。我知道ASP.NET页面并不是进行这种处理的理想场所,但这似乎最符合我们的要求。我们考虑产生一个新的线程(不是来自工作者池)进行处理,但决定如果我们这样做了,我们就不能使用返回的页面来表示成功或失败。通过在页面的生命周期内处理,我们可以使用页面内容来指示处理过程如何进行。
所以问题是: 这个设置有什么技术问题吗?
很显然,如果您尝试过这样的事情,任何成功/失败的报告将不胜感激。同样可以提出其他建议。
干杯,
为什么您认为在单独的线程中处理会比在页面生命周期中处理更好?从我的阅读中,只要应用程序在IIS应用程序池中循环使用,您创建的任何线程都会死亡。所以通过将它保持在页面生命周期中,我们希望避免这种情况发生。 – David