0

对于我的网站,我需要:

  • 记录动作和渲染时间
  • 记录某个产品的访问
  • 不时汇总选票
  • 时事通讯
  • 不时在社交网络上发帖

我的方法是创建一个全局过滤器和OnResultExecuted我进行检查和所需的操作。

我有一些疑问:

  1. 当 OnResultExecuted 运行时,用户是否收到了呈现的页面并且基本上没有等待其他任何内容?我阻止它吗?
  2. 在 OnResultExecuted 中为此作业启动一个新线程是个好主意吗?
  3. 这种方法在 ASP MVC 4 中可以吗
4

1 回答 1

0

根据 MSDN,在响应写入后调用此方法(http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onresultexecuted(v=vs.108).aspx)所以你不会阻止响应。

除了前两点(操作记录和访问记录)之外,其他点可能会根据任务的大小占用大量资源。

我的建议是为前两个任务覆盖 OnResultExecuted,并使用 Windows 服务(可以很容易地用 C# 编写)在后台执行其他任务。这样,您可以使用成本较低的 clr 线程而不是 iis 工作线程。

在后台运行耗时/资源消耗任务将增加 Web 应用程序的可扩展性

希望这可以帮助

于 2013-02-06T13:42:15.353 回答