Как узнать время последнего запуска приложения ASP.NET? - PullRequest
5 голосов
/ 14 февраля 2011

Как получить последний раз, когда текущее приложение ASP.NET было запущено?

Ответы [ 3 ]

6 голосов
/ 02 мая 2016

Если вы хотите отказаться от дополнительной переменной, я думаю, это даст вам последний раз, когда рабочий процесс IIS (a.k.a. пул приложений) был перезапущен:

System.Diagnostics.Process.GetCurrentProcess().StartTime

Я использую его для настройки кеширования, поскольку страница основана на контенте, который я генерирую только динамически при запуске приложения:

Response.Cache.SetLastModified(System.Diagnostics.Process.GetCurrentProcess().StartTime);

Можно останавливать / запускать отдельные веб-сайты в рамках пула приложений / рабочего процесса, но из этого поста я делаю вывод, что при этом не будут воссозданы статические объекты приложения, поэтому я собираю, что дата связана с рабочий процесс, пожалуй, самая полезная дата здесь.

Помните также, что статическая переменная приложения, созданная при запуске приложения, на самом деле часто дает вам время, когда приложение было впервые посещено. Возможно, рабочий процесс был запущен намного раньше, и это приводит к напомнить такие фразы, как «разогрев приложения IIS» и «автозапуск приложения IIS» и еще одно обсуждение того, когда статические поля инициализируются вообще. То, что вы выберете, может зависеть от того, интересует ли вас время последней перезагрузки рабочего процесса или интересует ли время, когда были вычислены другие статические элементы.

5 голосов
/ 14 февраля 2011

Вы можете установить статическое поле на DateTime.Now в Application_Start в Global.asax.

3 голосов
/ 14 февраля 2011

ну, я думаю, создайте статический класс со статическим конструктором, присваивая свойство DateTime.Now.

...