ASP.NET DateTime.Now появился замороженным на одной странице - PullRequest
1 голос
/ 14 декабря 2011

Сегодня утром у меня была довольно странная проблема с одним из моих сайтов. Отчет о дате для некоторых выбранных пользователем дней был отключен на один день. Веб-сайт позволяет пользователям выбирать один из трех дней («Сегодня», «Завтра» и «День после завтра»), а затем переводит выбранный день в фактическую дату (сегодня будет выглядеть как «12/14»).

Прошлой ночью страница работала нормально, но она почему-то появляется, когда перевернутая полночь дня не обновилась до текущего дня.

Страница использует .Net DateTime.Now для получения текущей даты, а затем смещает день на +0, +1 или +2 в зависимости от выбранного пользователем дня.

Я проверил системное время на сайте, и оно было правильным. DateTime.Now также отлично работал на других страницах сайта.

В итоге я просто переиздал весь сайт (за исключением web.config) на сервер, и это решило проблему. Но мой вопрос, как это вообще произошло? Мне просто любопытно, что может привести к тому, что DateTime.Now не будет обновляться на одной странице, и хотел бы предотвратить его повторение.

Сайт размещается с использованием IIS на виртуальной машине Windows Server 2008 R2.

Дайте мне знать, если потребуется дополнительная информация, и я сделаю все возможное, чтобы обновить вопрос.

1 Ответ

3 голосов
/ 14 декабря 2011

Кэширование на стороне клиента (браузер не думал, что ему нужен новый файл), кэширование на стороне сервера (сервер не думал, что вам нужен новый файл, вы, вероятно, знаете об этом), или сервер находится в часовой пояс отличается от вас (время смены даты на х часов позже, чем местная полночь).

Вы должны сказать asp.net, чтобы он не поощрял кэширование для восстановления страницы, но это ухудшит производительность, а иногда и значительно ухудшит. Попробуйте использовать javascript или кэширование дырок от бублика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...