ASP.NET 站点 - 在特定时间触发一些代码

Posted

技术标签:

【中文标题】ASP.NET 站点 - 在特定时间触发一些代码【英文标题】:ASP.NET Site - Firing some code at a specific time 【发布时间】:2012-01-24 23:24:04 【问题描述】:

我正计划在共享主机上构建一个 ASP.NET 网站。我没有为此提供 Windows 服务的选项。对于可以在凌晨 3 点执行任务的网站,我有哪些特定选择?也许开始一个单独的线程,或者什么?

谢谢。

【问题讨论】:

看看haacked.com/archive/2011/10/16/… 【参考方案1】:

我正要做类似的事情。

需要从 Global.asax 中启动一个单独的线程。

void Application_Start(object sender, EventArgs e)
    
        // Code that runs on application startup

    

您还需要考虑到应用程序池会循环多次,因此请确保它基于特定时间,并且您还有一个数据库来存储它是否已运行,以防应用程序池在凌晨 3 点,很有可能。

您还需要某种形式的保持活动服务,就像您的网站处于非活动状态一样,应用程序池在有人点击它之前不会重新启动。

【讨论】:

【参考方案2】:

我们以两种方式之一处理此类活动:

1) 在 global.asax Application_Start 中启动一个线程,该线程负责在适当的时间执行活动。

2) 在HttpRuntime.Cache 中存储一个虚拟对象,并在应用程序启动时指定超时时间,并让它执行CacheItemRemovedCallback 中的活动。

【讨论】:

【参考方案3】:

Seem legit

【讨论】:

以上是关于ASP.NET 站点 - 在特定时间触发一些代码的主要内容,如果未能解决你的问题,请参考以下文章

提交按钮未在 ASP.NET MVC Web 应用程序中触发

在 ASP.NET MVC 站点中返回视图时操作页面滚动

在 ASP.NET Web API 中创建一个线程每 X 秒执行一次特定代码

在 asp.net C# 中动态创建/复制的 Div

使用 ASP.NET 核心 MVC/Razor 站点和 WebAPI 进行授权

如何确定 ASP.NET 站点 (IIS) 上的用户数?他们的信息呢?