Программно найти, когда рабочий процесс ASP.NET и домен приложения последний раз запускались? - PullRequest
3 голосов
/ 30 октября 2010

В ASP.NET:

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

  2. В ASP.NETкак узнать, когда домен приложения последний раз перерабатывался?

1 Ответ

3 голосов
/ 30 октября 2010

Для рабочего процесса вы можете программно прочитать Процесс -> Истекшее время из соответствующего перфоратора. счетчик (1) или непосредственно из пространства имен System.Diagnostics.Process ; для AppDomain вы можете установить переменную уровня приложения при запуске, чтобы служить в качестве базовой линии и измерять ее вручную.

У Скотта Митчелла есть пара хороших постов на эту тему, которые все еще актуальны через 8 лет, хотите верьте, хотите нет (2). Работая на Cassini (Vista, VS 2008), я вижу точное время работы системы:

TimeSpan.FromMilliseconds(Environment.TickCount)

... и точные времена работы Process / AppDomain с этими:

foreach (Process p in Process.GetProcessesByName("WebDev.WebServer"))
{
    Response.Write(DateTime.Now.Subtract(p.StartTime).ToString() + "<br/>");
}

Response.Write(DateTime.Now.Subtract((DateTime)Application["StartTime"]).ToString());

Я также могу получить правильное PerfomanceCounter , но не могу прочитать правильное значение (всегда ноль, по моим настройкам):

Response.Write(new PerformanceCounter("Process", "Elapsed Time", "WebDev.WebServer").NextValue() + "<br/>");

Статьи Скотта определенно стоит прочитать - в ProcessInfo и ProcessModelInfo (например, ProcessModelInfo.GetHistory ) есть масса информации, но, к сожалению, это доступно на Кассини:

Метрики процесса доступны только когда модель процесса ASP.NET включен. При работе на версиях IIS 6 или новее в рабочем процессе Режим изоляции, эта функция не поддерживается.

UPDATE: отличное объяснение того, как правильно считать счетчик, чтобы избежать нуля при NextValue () : http://blogs.msdn.com/b/bclteam/archive/2006/06/02/618156.aspx

НТН

(1) https://serverfault.com/questions/90927/lifetime-of-iis-worker-process-or-appdomai

(2) http://www.4guysfromrolla.com/articles/041002-1.aspx

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