【问题标题】:how to write to text file constantly while site is live如何在网站运行时不断写入文本文件
【发布时间】:2011-06-13 06:50:47
【问题描述】:

我要做的是创建一个运行随机数生成器、显示随机数并将其写入文本文件的 asp.net 页面。这部分不用担心,问题是我希望在页面处于活动状态时继续进行数字生成和文件写入 - 即,如果没有人真正查看页面,它只是坐在服务器上,该过程应该继续。

这可能吗?

编辑:愚蠢地忽略了使用网络服务生成数字 - 我已经敲开了一个生成数字并将其写入文本文件的基本服务。无法弄清楚如何安排/自动化它 - 我可以设置一个定时器,具有给定的时间间隔,然后使用 timer_Tick 吗?

调度对我来说是新的,任何建议都值得赞赏。

【问题讨论】:

  • 使用setInterval 运行的简单 AJAX 怎么样?

标签: c# asp.net random numbers


【解决方案1】:

【讨论】:

    【解决方案2】:

    您是否考虑过使用计划任务?因此,不是页面调用更新,而是计划任务执行此操作,并且页面查看器只是在任何特定点看到“最新结果”。当然,这可能不可行,但听上去,您正在执行一项持续工作的服务/任务,能够查看最新号码,有点像 RSA 令牌,即使您不需要也会显示新号码一个。

    【讨论】:

    • 我同意其他人的观点,一个简单的 windows 服务就足够了。
    【解决方案3】:

    不确定这是否是您想要的。但是如果你有兴趣使用调度器来完成这个任务,你可以试试Quartz.Net。是一个非常流行、功能齐全的开源调度系统。

    【讨论】:

      【解决方案4】:

      请描述您要达到的目标。可能有比将随机数写入文件更好的方法。

      我不会为此使用服务(web 或 winservice)。使用网络服务没有任何好处,因为它的作用与您的网络完全一样。 Windows 服务将继续独立于您的 Web 运行,您需要创建某种 IPC 并跟踪多个计时器/文件。

      最简单的方法是使用System.Threading.Timer 并将其保存在会话变量中。另请注意,您需要在用户会话到期时将其杀死。

      您还应该知道,每个使用该页面的用户都会创建一个计时器。

      更新

      创建一个 Windows 服务应用程序并向其添加 System.Threading.Timer。在定时器回调中写入文件。

      然后在您的网络应用中打开文本文件(使用 FileShare.ReadWrite + FileMode.Read)

      【讨论】:

      • 我想要实现的是 - 每 n 秒将一个介于 1 和 100 之间的随机数添加到文本文件中,无论网站如何。如果访问者在网站上,页面会显示不断变化的随机数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2018-09-07
      • 1970-01-01
      相关资源
      最近更新 更多