#c# #asp.net #windows #virtual-machine
#c# #asp.net #Windows #виртуальная машина
Вопрос:
У меня есть ASP.NET приложение, размещенное на ферме виртуальных серверов с проблемами во времени. Симптомы заключаются в том, что при запуске или перезагрузке серверов они часто показывают плохое системное время (возможно, часы простоя).
(Очевидно, лучшим ответом было бы решить системную проблему, но в настоящее время это вне моего контроля …)
Итак, вот вопрос: есть ли прямой способ для меня получить мой ASP.NET приложение для запроса авторитетного NTP-сервера при запуске и последующего сброса системных часов, если это необходимо?
Технические предположения: * ASP.NET 4.0 * Windows 2008 * Полные права локального администратора на сервере
Комментарии:
1. Я не думаю, что приложение является подходящим местом для этого. Я думаю, что есть инструменты, доступные для синхронизации времени. Может быть, служба времени Windows?
2. Полностью согласен, что это «правильный» способ справиться с этим. Я просто пытаюсь найти обходной путь в плохо администрируемой среде…
3. Имейте в виду, что может быть странное поведение из-за изменения системных часов во время ASP.NET приложение запущено. Например, изменение часов может непреднамеренно привести к превышению времени ожидания для пула приложений, что приведет к снижению производительности w3wp.exe процесс. Будьте осторожны.
Ответ №1:
Возможно, вы сможете сделать это с помощью WMI (инструментарий управления Windows). Хотя у меня нет личного опыта в этом, существует множество примеров. Для запуска:
- Классы в System.Management помогут вам запросить WMI из .NET framework
- Пример MSDN: подключение к удаленному компьютеру для выполнения запроса WMI
- Сценарии WMI: задачи даты / времени
- Класс Win32_LocalTime
- Использование языка запросов обновления WMI для обновления системной информации
Надеюсь, это поможет вам двигаться в правильном направлении.
Ответ №2:
Я не думаю, что приложение является подходящим местом для сброса системного времени. Если я не ошибаюсь, служба времени Windows может справиться с этим:
http://www.windowsnetworking.com/articles_tutorials/configuring-windows-time-service.html
Комментарии:
1. Проблема в том, что злые силы, находящиеся вне моего контроля, настраивают сервер и запускают на нем мое приложение. Моя первая точка контакта — при запуске приложения… Я мог бы просто запустить приложение, если часы слишком сильно вышли из строя, но я бы «хотел» иметь возможность «автоматически» устранить проблему без запуска сеанса RDP на сервере…
2. Это сложно… можете ли вы создать службу для запуска на серверах?