gpt4 book ai didi

c# - 24小时运行服务

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:23 27 4
gpt4 key购买 nike

我正在使用 ASP.Net mvc 3 C# 制作 Web 应用程序。我有一些服务需要每隔 x 分钟运行一次。此外,可以更新或更改此服务的某些设置。

我不确定我应该使用什么技术来保持我的服务在服务器上运行并能够使用 ASP.Net MVC 界面(网络)远程停止/运行它。

我假设一些隐藏的服务或应用程序有一个计时器,每 x 分钟触发一次所需的作业。

任何建议,因为这是我的第一个大型 .Net 项目:)

谢谢

最佳答案

这取决于您对部署到的环境拥有何种控制权。如果它是您的服务器并且您对它有足够的权限,您可以:

  1. 编写一个带有计时器的 Windows 服务,它会唤醒并在您的 Web 应用程序上执行 Http 请求。

  2. 设置一个运行 VB 脚本(或类似脚本)的计划任务来调用您的网络应用。

我不建议做的一件事是在你的网络应用程序中使用一个带有计时器的后台线程。您可以这样做 ( http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29 ),但如果 Web 的应用程序域被关闭,它本质上是不安全的。

如果您要部署到 ISP、共享主机,或者由于某种原因您只能部署您的 Web 应用程序而不能部署其他任何东西,您将需要一个在其他地方运行的调用 Web 应用程序的脚本。大多数 ISP,即使是共享主机,也会让您设置计划任务。然后,您可以将一个简单的 VB 脚本上传到 cgi-bin,例如,它调用网络应用程序 (http://chriscant.phdcc.com/2011/05/scheduled-task-ping-for-plesk-in.html)。

我正准备自己实现最后一个解决方案。

关于c# - 24小时运行服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8352652/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com