Winform: режим обслуживания клиентов?
В asp.net есть app_offline.htm, который позволяет корректно завершить работу сайта. Я хочу реализовать подобную функцию в клиенте. Есть флаг, чтобы установить режим обслуживания, если флаг включен:
- Когда пользователь запускает клиент, ему будет предложено что-то вроде "система находится на обслуживании, повторите попытку через 30 минут".
- Любые новые операции обновления / удаления / добавления, аналогичное сообщение с запросом.
- Текущие запросы будут обработаны.
Как это реализовать?
2 ответа
Учитывая различия в архитектуре приложения, это не то, что будет иметь решение типа "один размер подходит всем", которое будет работать для всех.
app_offline.html для веб-приложений - это действительно "кувалда". Приложение не работает, да, это изящно, но это 100% жесткая остановка.
Примитивный способ сделать это в вашем приложении может состоять в том, чтобы вам звонили в службу поддержки, которую вы делаете на регулярной основе в режиме "онлайн" или аналогичный. Если он возвращает false, принудительно выйдите из текущей формы и покажите заставку.
Но это действительно будет зависеть от архитектуры.
Вы можете поставить условие при запуске клиента, но если вы хотите использовать такое же поведение, как app_offline.htm, вы также можете включить в обслуживание уже открытый клиент.
В этом случае вы можете установить MessageFilter для перехвата любого события во всем приложении Winforms.