【问题标题】:asp.net application, autosend emailsasp.net 应用程序,自动发送电子邮件
【发布时间】:2014-02-03 18:08:54
【问题描述】:

我有一个托管在远程服务器上的小型 asp.net 应用程序。此应用程序应该在用户设置的特定时间发送电子邮件通知(通过 gamail 服务器)。

我的问题是,有什么方法可以实现这个目标,因为用户应该通过浏览器打开应用程序,设置通知并关闭浏览器。服务器上的应用程序是否仍在运行?

请告知如何实现这一目标。 谢谢

【问题讨论】:

  • ASP.NET 的设计目的不是为了方便这一点。可以延长运行时间等,但最好在主机上将其作为服务运行。
  • 我已经创建了Windows服务,但是如何托管呢?
  • 您需要访问服务器本身才能安装服务。请参阅安装 Windows 服务 - msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx - 了解详细信息。
  • 那么您还有什么建议来制作一个通知应用程序(基于 Web,asp.net),它可以根据系统时间检查时间并在时间到时发送电子邮件?\
  • 就像我之前提到的,Web 应用程序不是为此而设计的。如果这绝对必须是基于 Web 的应用程序,那么您需要另一种触发 Web 请求的方法。您可以通过创建一个桌面应用程序来执行此操作,以在定期轮询网页的独立机器上运行。然后,此网页可以检查系统时间,并执行所需的任何操作。本质上,您是在自动加载页面。不理想,但应该可以。

标签: asp.net


【解决方案1】:

鉴于时间是可变的,我建议编写一个 Windows 服务,该服务会定期检查当前时间与网站设置的时间。这项服务只会关闭您的电子邮件,从而使您的网站完全独立。

我过去做过类似的事情,我不得不在不同的时间发送电子邮件/短信通知,只是要小心你如何查看时间。用户将设置 local 时间,这意味着如果您以 UTC 格式存储日期(应该如此),您可能需要在比较之前将时间戳转换回用户本地时区。

【讨论】:

    【解决方案2】:

    您可以简单地编写控制台应用程序并将其添加到计划任务中(如果您希望它在间隔后运行),这是一种更值得信赖的方式。

    【讨论】:

    • 时间是可变的,只要用户改变时间就意味着更新计划任务,不要认为使用 ASP.NET 是可能的。
    【解决方案3】:

    我刚刚发现我们只需要添加 Global.asax 文件(在服务器资源管理器中右键单击项目并添加新项目>>添加全局应用程序) 只需将您的电子邮件代码放入文件中即可。托管时,它通过 IIS 运行,即使浏览器已关闭。

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      相关资源
      最近更新 更多