我们需要能够在某些日期发生或满足某些业务条件时发送自动电子邮件。我们正在设置这个系统以与现有的 ASP.NET 网站一起工作。我在这里与其他一位开发人员进行了交谈,并讨论了一些问题。
注意事项:
- 我们需要的所有信息都已在 ASP.NET 网站中建模
- 电子邮件生成需要一些业务逻辑,这些逻辑也已经在网站中
我们认为理想的解决方案是拥有一个单独的可执行文件,该可执行文件计划在夜间运行并进行处理和发送电子邮件。该解决方案有两个主要问题:
- 如果网站已更新(业务逻辑或模型)但可执行文件意外丢失,则可执行文件可能会停止发送电子邮件,或者更糟糕的是,基于过时的逻辑发送电子邮件。
- 我们希望使用这样的东西来使用 UserControls 来模板化电子邮件,我认为这在 ASP.NET 网站之外是不可能的
第一个问题可以通过构建和部署脚本来避免(我们目前正在研究),但我认为我们无法解决第二个问题。
所以我们决定的解决方案是拥有一个由 SSIS 定期调用的 ASP.NET 页面,并让它执行一定数量的处理(比如 30 秒)然后返回。我知道 ASP.NET 页面不是进行此类处理的理想场所,但这似乎最能满足我们的要求。我们考虑产生一个新线程(不是从工作池中)来进行处理,但决定如果我们这样做,我们就不能使用返回的页面来表示成功或失败。通过在页面的生命周期内进行处理,我们可以使用页面内容来指示处理是如何进行的。
所以问题是:这个设置是否存在任何技术问题?
显然,如果您尝试过这样的事情,任何成功/失败的报告都会受到赞赏。与替代设置的建议一样。
干杯,