Можно ли отобразить окно сообщения (или какая-либо форма уведомления) от сервиса окон? Не может заставить это работать. Я использовал:
global::System.Windows.Forms.MessageBox.Show("A fatal error occurred. " +
ServiceName + " is now terminating.");
но это не работало и просто произвело ошибку.
Нет, вы не можете показать окно сообщения от службы. Если вы хотите сообщить об ошибках, стандартный способ сделать это - журнал событий.
Для более "продвинутых" видов пользовательского интерфейса (не только для отчетов об ошибках) обычно используется обычное приложение windows, которое помещается в папку Startup пользователя (или ключ Run в реестре) и связывается со службой через какой-либо IPC механизм (.NET remoting, WCF, обычные сокеты, именованные трубы и т.д.).
Разрешить службе взаимодействовать с рабочим столом поможет вам сделать это из консоли Services.msc.
НО, это очень плохая идея. Особенно, если вы забудете удалить это сообщение позже. Служба зависнет, так как у вас будет окно сообщений, на которое никто не сможет щелкнуть.
Нет, не можете. Службы Windows не имеют графического интерфейса. Но вы можете показать небольшое уведомление в системном трее.
Из Википедия :
Хотя обычно службы не имеют пользовательского интерфейса, разработчики могут добавлять формы и другие компоненты пользовательского интерфейса. В этом случае необходимо установить флажок « Разрешить службе взаимодействовать с рабочим столом » на вкладке «Вход в систему» в диалоговом окне «Свойства службы» (хотя при таком подходе следует соблюдать осторожность, поскольку это может вызвать угрозу безопасности, поскольку любой зарегистрированный в пользователь сможет взаимодействовать с сервисом).
Если этот параметр включен, вы сможете отображать окна сообщений службы.