【问题标题】:ASP.NET DateTime.Now appeared frozen on a single pageASP.NET DateTime.Now 出现在单个页面上冻结
【发布时间】:2011-12-14 15:48:48
【问题描述】:

今天早上我的一个网站遇到了一个非常奇怪的问题。某些用户选择的日期的日期报告已关闭一天。该网站允许用户从三天(“今​​天”、“明天”和“后天”)中进行选择,然后将所选日期转换为实际日期(今天看起来像“12/14”)。

该页面昨晚运行良好,但不知何故在当天午夜结束时出现了,但没有更新到当天。

页面使用 .Net DateTime.Now 获取当前日期,然后根据用户选择的日期将日期偏移 +0、+1 或 +2。

我检查了网站上的系统时间,它是正确的。 DateTime.Now 在网站的其他页面上也能正常工作。

我最终只是将整个站点(减去 web.config)重新发布到服务器,它解决了问题。但我的问题是,这首先是怎么发生的?我只是有点好奇是什么导致 DateTime.Now 不在单个页面上更新,并希望防止它再次发生。

该站点使用 IIS 在 Windows Server 2008 R2 虚拟机上托管。

如果需要更多信息,请告诉我,我会尽力更新问题。

【问题讨论】:

  • 该特定页面是否启用了缓存?
  • 是的。但是,坐在页面上的一个用户会导致为不同的用户缓存一个日期时间吗?另外,真的,-1?我对此进行了研究,没有发现任何问题,很清楚问题是什么......

标签: c# asp.net datetime


【解决方案1】:

客户端缓存(浏览器认为它不需要一个新文件),服务器端缓存(服务器认为你不需要一个新文件,你可能知道这个),或者服务器在与您不同的时区(日期更改时间比您当地的午夜晚 x 小时)。

您必须告诉 asp.net 阻止缓存以重新生成页面,但这会降低性能,有时甚至会变得更糟。考虑使用 javascript 或甜甜圈洞缓存。

【讨论】:

  • 我喜欢你也提到了可能的时区问题。 +1
  • 谢谢!我将研究使用甜甜圈洞缓存,同时建议用户不要在此特定页面上闲置。
  • 好吧,我不想承认这一点,但我发现了问题所在。经过大量的故障排除后,如果用户在日期更改时保持页面打开,则尝试甜甜圈缓存并禁用整个站点客户端缓存日期时间仍然无法正确更新。原来我将类变量声明为静态...删除它解决了问题。再次感谢您的帮助,这整个考验教会了我一个新概念(甜甜圈和甜甜圈洞缓存)!
猜你喜欢
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
相关资源
最近更新 更多