我在 asp.net 中有一个主应用程序。 我可以选择通过 SMTP 发送邮件。我想做一个单独的邮件发送过程。这意味着如果我点击 SEND MAIL 按钮,邮件应该从后台发送而不影响应用程序(像 separate service)。我已经尝试使用单独的线程 并且它工作正常但是是否有可能在不影响主应用程序的情况下进行单独的邮件发送过程。如果我关闭应用程序(应用程序池),那么它也应该发送邮件。
谢谢。
最佳答案
将邮件发送逻辑实现为 Windows 服务,并使用 IPC(例如通过 Mutex 和 MemoryMappedFile 共享内存)在您的 ASP.NET 应用程序和 Windows 服务之间进行通信。
这样做的好处是只要机器启动邮件发送逻辑就会运行...如果您需要持久性(例如在重启后记住未发送的消息)您可以使用数据库或文件系统...
编辑 - 更简单的选项:
在 IIS 中设置一个 SMTP Pickup 文件夹(它内置了这个选项!)并相应地配置您的 ASP.NET 应用程序(参见示例 http://www.singular.co.nz/blog/archive/2007/11/28/using-an-smtp-pickup-directory-delivery-method-for-asp-net-development.aspx 和 http://www.singular.co.nz/blog/archive/2007/12/19/programmatically-setting-the-smtpclient-pickup-directory-location-at-runtime.aspx)。
通过这种方式,您的应用程序将邮件作为 .eml 文件保存到目录中,IIS 负责其余的工作(发送/重新发送/记录等)。 SmtpClient
能够使用内置的拾取文件夹!
关于c# - 如何在 asp.net 中创建一个独立于主应用程序的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7938870/