#c# #.net #windows-services
#c# #.net #windows-службы
Вопрос:
Я создал C # .Чистая служба Windows. Есть несколько файлов конфигурации, которые используются этой службой. Прямо сейчас у нас есть другой компонент dll, который загружается приложением, и оттуда мы создаем файлы конфигурации. Я хочу открыть этот DLL-компонент непосредственно из моей службы. Следующий вариант, который я хочу предоставить в final service exe, который будет действовать как сервис, а также конфигуратор.
Допустим, имя exe равно SampleServ.exe тогда параметры должны быть:
- Без каких-либо аргументов он должен запускаться как service
- С аргументом типа SampleServ.exe -config (он должен запускать конфигуратор вместо службы)
Я пытаюсь вот так
public static void Main(string[] args)
{
if (args.Length == 0)
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
else
{
MainPage wnd = new MainPage();
wnd.ShowDialog();
}
}
Здесь главная страница является производным окном, и я не могу добавить пространство имен system.window из-за ограничения сервиса.
Пожалуйста, дайте мне знать, возможен ли другой способ.
После добавления еще какого-либо компонента в project reference я могу это сделать. Я добавил ссылки типа «PresentationCore», «PresentatinoFramework», «System.Xaml». Я просто хотел узнать, есть ли какие-либо последствия добавления такого компонента.? Есть идея?
В остальном теперь мой код работает…
Ответ №1:
Привет, вот полный пример того, что вам нужно, он также включает функцию установки / удаления
http://blogs.microsoft.co.il/blogs/kim/archive/2009/01/04/self-installing-windows-service.aspx
Ответ №2:
Используйте Environment.GetCommandLineArgs
для получения аргументов (индекс 0 — это имя программы, однако будьте осторожны). Если аргумент 1 не «-config», запустите как службу, в противном случае покажите свою форму конфигурации.
Комментарии:
1. Я могу получить аргумент. Это не моя проблема. Когда я создаю объект компонента (который является wondow) и делаю. Покажите Dialog, что сейчас происходит. Это не позволяет мне добавлять пространство имен / зависимости, связанные с формой.