Назад | Перейти на главную страницу

Просматривать программу в другом сеансе входа в систему? (Windows Server 2008)

у нас есть сервер, на котором работает WinSrv 2008 (не R2). На этом сервере есть запланированная задача, которая запускается при запуске и просто запускается непрерывно, просыпаясь с интервалом в соответствии с настройкой базы данных, чтобы выполнить работу, а затем вернуться в режим сна (клиент хотел иметь возможность контролировать интервал через связанный веб-сайт, вот почему это выполняется как приложение с непрерывным запуском, а не с использованием времени планировщика заданий).

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

Прежде чем я буду вставлять массивный отладчик состояния после каждой строки или чего-то еще, мне интересно, есть ли способ, которым я могу войти на сервер и увидеть фактическую программу, которая работает под планировщиком задач?

Я имею в виду, что при запуске задачи в Планировщике она запускается в своего рода невидимом фоновом сеансе входа в систему. Есть ли способ «внедрить» его в мой сеанс входа в систему, чтобы я мог видеть окно программы as it is currently running, так что я могу видеть его состояние?

Прежде всего, я должен отчитать вас за то, что вы не написали это приложение как собственную службу Windows. Он предназначен для запуска при запуске в фоновом режиме, без взаимодействия с пользователем, постоянно (без вмешательства администратора). Это хрестоматийный пример того, что делает служба Windows. Злоупотребление функциональностью планировщика заданий для запуска вечно работающего приложения - это просто небрежное / ленивое программирование. Я уверен, что существует множество готовых шаблонов, которые вы, вероятно, можете использовать для любого языка, который использует ваше приложение.

С учетом всего сказанного, почему бы просто не запустить это приложение вручную на сервере в сеансе консоли, где вы уже можете его увидеть, и просто подождать, пока оно выйдет из строя, как обычно?

Если ты бежишь Обозреватель процессов от Microsoft вы должны иметь возможность видеть процессы, которые были созданы из процесса планировщика заданий, то есть из svchost.exe. Если вы щелкните правой кнопкой мыши соответствующий процесс и, если применимо, у вас может быть возможность переключиться в окно. Однако я думаю, что это зависит от вашего приложения. Также, возможно, стоит подумать об использовании средства просмотра событий или файла журнала, чтобы попытаться определить, что вызывает проблему.