#c# #.net #windows-services #windows-server-2008
#c# #.net #windows-службы #windows-server-2008
Вопрос:
Я создаю службу, которая будет запускаться на Windows Server 2008 R2 box. Теперь мне интересно, как мне разобраться с конфигурацией службы. Возможно ли интегрировать графический интерфейс для службы в диспетчер серверов? Если да, то каким образом? Или есть лучший способ настройки службы?
Комментарии:
1. Что не так с использованием
app.config
файла?2. Верно, я новичок в службах и не так много знаю о них.
Ответ №1:
Если вы действительно хотите создать графический интерфейс, который интегрируется с интерфейсом управления Windows, вам нужно создать для своей службы консоль управления Microsoft. Однако вы можете обнаружить, что требуемых усилий больше, чем вы хотите вложить. В этом случае вы можете создать свой собственный графический интерфейс, используя WPF, Windows Forms или что-либо другое, что вам удобно использовать.
В большинстве случаев вам нужно решение, в котором служба считывает конфигурацию из источника (реестра или файловой системы), а графический интерфейс пользователя просто изменяет этот источник. Служба должна отслеживать источник обновлений, отправляемых графическим интерфейсом.
Другое решение — разрешить службе считывать конфигурацию только во время запуска. Затем ваш графический интерфейс должен иметь возможность перезапустить службу, чтобы позволить службе получать изменения.
Комментарии:
1. Спасибо, это именно тот сервер, который я искал.
Ответ №2:
Я думаю, что самый простой способ сделать это:
Служба:
напишите чистую службу без графического интерфейса.
Пусть эта служба считывает настройки либо из файла конфигурации данных приложения, либо из реестра (я бы использовал реестр, если бы это было всего лишь несколько настроек).
Приложение с графическим интерфейсом:
напишите простое приложение с пользовательским интерфейсом, которое настраивает параметры.
В приложении есть возможность перезапустить службу.
Комментарии:
1. Я бы рекомендовал не использовать реестр — вместо этого, поскольку это приложение .NET, используйте стандартную систему конфигурации .NET (располагайте
app.config
рядом с вашей службой .NET Windows)