0

我创建了一个 ASP.NET Web 表单站点。

该网站允许用户撰写文章,并上传附件。

当用户写文章时,所有上传的附件都会被移动到temp folder我在我的站点文件夹中创建的文件夹中,当用户提交文章时,附件会被移动到适当的路径,

但是如果用户关闭表单,丢弃文章怎么办?临时文件夹中的文件是永久的吗?当然不是!

所以

我想确定一个定期删除临时文件的好方案,而不删除任何待处理的文件。

我在想一个场景:

  • 删除创建超过一个小时的任何文件!(使用文件系统函数)并且发生在Application_Start事件或Session_end

有更好的想法吗?

4

1 回答 1

2

我会把它作为一个独立的 Windows 服务来做。

如果您将该逻辑添加到 Application_Start 事件,如果您的站点经常被访问(并且从未被 IIS 回收),您将只运行该进程一次。您还可能会显着减慢第一个访问者对网站的初始预编译速度。

Session_end 可能很好,但如果两个人同时结束它,您可能会遇到竞争情况。

Windows 服务为您提供了始终运行的好处(如果编写正确,则在等待时不使用 CPU),并且它不会干扰您的 ASP.NET 站点的工作。

于 2013-06-24T22:46:17.930 回答