如何在网站运行时不断地写入文本文件
本文关键字:文本 文件 网站 运行时 | 更新日期: 2023-09-27 17:58:56
我要做的是创建一个asp.net页面,该页面运行随机数生成器,显示随机数,并将其写入文本文件。这一部分不用担心,问题是我希望在页面处于活动状态时继续生成数字和写入文件,即如果没有人真正查看页面,它只是坐在服务器上,那么这个过程应该继续。
这可能吗?
编辑:愚蠢地忽略了使用Web服务生成数字——我已经建立了一个生成数字并将其写入文本文件的基本服务。我不知道如何安排/自动化它——我可以设置一个计时器,以给定的间隔,然后使用timer_Tick吗?
日程安排对我来说是新的,任何建议都很感激。
您可以使用Window Service在后台工作,请参阅下面的链接:
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx
http://www.codeguru.com/columns/dotnet/article.php/c6919
您是否考虑过使用计划任务?因此,不是页面调用更新,而是调度任务执行更新,页面查看器只是在任何特定点看到"最新结果"。当然,这可能不可行,但听起来,你正在追求一项持续工作的服务/任务,能够查看最新的数字,有点像RSA代币,即使你不需要它,它也会显示新的数字。
不确定这是否是您想要的。但如果你有兴趣使用一个调度程序来完成这项任务,你可以试试Quartz。网这是一个非常流行的、功能齐全的、开源的sheduling系统。
请描述您正在努力实现的目标。可能有一种比在文件中写入随机数更好的方法。
我不会为此使用服务(web或winservice)。使用web服务没有任何好处,因为它的功能与您的web完全相同。windows服务将继续独立于您的web运行,您需要创建某种IPC并跟踪几个计时器/文件。
最简单的方法是使用System.Threading.Timer
并将其保存在会话变量中。还要注意,当用户会话到期时,您需要终止它。
您还应该注意,每个使用该页面的用户将创建一个计时器。
更新
创建一个Windows服务应用程序并向其中添加一个System.Threading.Timer
。写入计时器回调中的文件。
然后在web应用程序中打开文本文件(使用FileShare.ReadWrite+FileMode.Read)