2010-10-11 68 views
2

我有一个带有ASPX页面和ASMX Web服务的ASP.NET网站。我想执行可能相对耗时的服务器端清理操作(删除临时文件)。由于我不会涉及的原因,在此操作正在进行时处理请求(ASPX或ASMX)是非常重要的。如何以及何时执行ASP.NET服务器端清理操作

理想情况下,我想在没有请求时执行此操作。做这个的最好方式是什么? 我想以下之一:

  1. 确定时,有没有要求,然后开始操作,但一旦接收请求停止操作。这甚至有可能吗?任何人都可以提出一个这样的机制?
  2. 每次ASPNET工作进程回收时执行操作。如果是的话,是否有这样的事件?每当ASPNET工作进程被回收时,Application_Start是否被调用?
  3. 例行安排此操作(例如每天一次)并在此期间中止所有请求。有没有办法在我的操作正在进行时自动暂停请求?

附加:

我预计应该每天要执行的操作一次,最多需要一分钟。我想将其构建到我的应用程序中,使其完全自动化。这些文件位于Web服务器上。我可以完全访问网络服务器。

+0

你有控制台访问服务器吗? – Kev 2010-10-11 17:33:00

+0

很难提出任何建议,因为你没有提到你正在做的事情的范围。这是否是一次性清理,您预计需要几天时间才能完成,或者您想要在应用程序中构建的内容不断发生?存储的文件在哪里(网络服务器,应用服务器,数据库服务器)?您对Web服务器和/或存储文件的服务器有哪些访问级别? – NightOwl888 2010-10-11 23:43:47

回答

1

如果您需要禁用请求,您可以在会话/数据库中使用一个标志来注意维护正在进行。然后在你的代码中,当设置了该标志的请求进来时,你可以显示一个错误页面。你甚至可以评估这个请求,并且有一个在维护正在进行时无法命中的URL的“黑名单”。

至于如何使用数据库标志解决方案,您可以使用Sql Server作业来完成所有这些工作,包括调度它。

相关问题