调用非静态方法时出错



我有这个计时器

System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimerMethod);
aTimer.Interval = 5000;
aTimer.Enabled = true;

但是当我在计时器代码中调用此方法时,

private void OnTimerMethod(object sender, ElapsedEventArgs e)
{
    Response.Write("text");
}

我收到此错误消息

System.Web 中发生类型为"System.Web.HttpException"的异常.dll但未在用户代码中处理

我该如何解决这个问题?

更新 :
我看到我做错了,但我如何做到这一点?

提前致谢

我正在尝试提醒,所以我会在检测到的时间弹出一些消息

您不能通过简单地将额外数据写入已完成的响应上下文来执行此操作。http 生命周期不允许这样做,至少在 http 1.* 中不允许。相反,您需要(以下之一(:

  • 将所有计时器代码移动到客户端并在JavaScript中担心它
  • 从客户端运行 AJAX 并定期轮询服务器
  • 建立从客户端到服务器的 Web 套接字连接;这允许服务器在不需要请求的情况下将消息推送到客户端,但需要在客户端和服务器之间建立已建立且有效的 TCP 连接,并且需要为 Web 套接字服务器提供不同的编程模型

提醒的最佳选择可能只是第一个。

最新更新