У меня есть приложение ASP.NET, размещенное в IIS, и у меня отключена автоматическая перезагрузка / завершение рабочего процесса. Я хотел бы иметь приблизительное представление о том, как долго приложение работает непрерывно без повторной загрузки.
Я думаю, что одним из источников, из которого можно почерпнуть это, является информация о том, когда рабочий процесс был в последний раз перезапущен, возможно, в журналах IIS или счетчиках производительности. Или, в качестве альтернативы, из информации о том, когда был создан сам домен приложения, возможно, в счетчиках производительности. В любом случае я не могу найти такой информации. Можно ли определить это для уже развернутого приложения, если не считать изменения кода?
Возможно, сторонние инструменты, отслеживающие процессы? Или информация из IIS в журнале событий?
Первоначально опубликовано на SO: https://stackoverflow.com/questions/1835469/lifetime-of-worker-process-or-appdomain
Я не знаю какой-либо счетной информации для AppDomain, но в perfmon вы можете получить Process -> Elapsed Time, который показывает, как долго работает пул приложений.
Я знаю, что вы сказали, что не хотите изменять какой-либо код, но если это вариант, вы можете просто зарегистрировать время запуска и идентификатор процесса в событии Application_Start вашего приложения asp.net. Тогда у вас будет время работы вашего приложения и пула приложений, поскольку новый PID означает переработанный пул приложений.