ПредишенСледващото

Всяка услуга трябва да бъде конфигуриран в системния регистър. Всички услуги, които се хостват HKEY_LOCAL_MACHINE \ System под \ CurrentControlSet \ Services. Запишете се съдържа в записите в системния регистър може да бъде чрез регентство полезност. Тя съдържа информация за вида на услугата, екранното му име, пътя до изпълнимия му файл, стартирайте конфигурация и т.н. Фигура за пример показва как изглежда системата конфигурация W3SVC услуга регистър:

Net, инсталиране на Windows услуга

Такава конфигурация може да бъде предоставена чрез Class монтажници от пространството от имена System.ServiceProcess.

За да добавите към програмата за инсталиране на услугата, трябва да преминете, за да видите визуален дизайнер в Visual Studio и изберете Add Installer контекстното меню (добавяне на инсталатора). Резултатът е нов клас ProjectInstaller, както и случаи на класове и ServiceInstaller ServiceProcessInstaller.

клас Installer

ProjectInstaller клас наследява от System.Configuration.Install.Installer. Този клас е основата за всички специални монтажници. С класа Installer, можете да създадете инсталационните процедури, основани на сделки. В случай на неуспешно приключване на такава процедура, става възможно да се върне назад към предишно състояние и отмяна на всички промени, които са извършени след процедурата.

Вътре ProjectInstaller клас конструктор призовава InitializeComponent () метод:

Класове ProcessInstaller и ServiceInstaller

В рамките на кода за прилагане InitializeComponent () са инстанция и класове ServiceProcessInstaller ServiceInstaller. И двете от тези класове наследяват от ComponentInstaller. който от своя страна е получен от инсталатора клас.

Класове наследени от ComponentInstaller, могат да се използват за персонализиране на процеса на инсталиране. Не трябва да забравяме, че процесът на услуга може да включва стартирането на повече от една услуга. ServiceProcessInstaller клас може да се използва за процеса на адаптиране, което ще отговаря за определяне на стойностите за цялата стартира в рамките на този процес услуги, както и ServiceInstaller клас - за да изберете всяка от тези услуги, т.е. за всяка услуга трябва да се прилага отделен екземпляр ServiceInstaller. Когато има три съобщения, осъществявани в рамките на процеса трябва да бъде добавена, съответно, три екземпляра ServiceInstaller.

Можете да видите, че ServiceProcessInstaller инсталира програма, която изпълнява ServiceBase клас. Клас ServiceProcessInstaller има свойства, предназначени за целия процес. Следва кратко описание на тези свойства, които имат достъп до всички услуги в рамките на процеса:

Посочва името на потребителски акаунт, трябва да се извърши в случай на обслужване чрез създаване на имота в ServiceAccount.User Сметка.

Тя ви позволява да определите типа обслужване на профила на.

Това е само за четене имот, който се връща от помощ текст по отношение на името по подразбиране и паролата на потребителя.

Процес използва за стартиране на услуга може да се определи в ServiceProcessInstaller профил на имот клас с помощта на трансфер ServiceAccount. Следва кратко описание на всички стойности, които могат да бъдат настроени за свойствата на Сметката.

ServiceInstaller - клас, който се изисква за всички услуги. За всяка услуга в процеса той поддържа следните свойства: StartType, DISPLAYNAME, SERVICENAME и ServicesDependedOn. Кратко описание на тези свойства е дадена по-долу:

Настройването на тази стойност показва, че услугата е да се използва изключително привилегирован потребителски акаунт на локалната система и действа като компютър в мрежата.

Подобно на LocalService, тази стойност се посочва, че пълномощията на компютърни данни, за да бъдат предадени на отдалечени сървъри, но за разлика от LocalSystem, това означава, че местната служба система трябва да действа от името на потребителски акаунт не е привилегирован. Както можете да се досетите от името, тази стойност трябва да се използва само за тези услуги, които изискват достъп до мрежови ресурси.

Тази стойност показва, че който и да е отдалечен сървър трябва да се предоставя анонимни пълномощията и услугата трябва да има на локалната система със същите привилегии като NETWORKSERVICE на услуги.

Настройка на стойността на имотите ServiceAccount.User профил означава, че потребителят може да определи този, който да бъде използван в услугата.

StartType собственост показва услуга трябва да се стартира ръчно или автоматично. Възможни стойности: ServiceStartMode.Automatic, ServiceStartMode.Manual, ServiceStartMode.Disabled. Монтирането на този имот на ServiceStartMode.Disabled услуга не се стартира. Тази опция може да бъде полезна за тези услуги, които не трябва да се движат по системата. Например, определянето на този имот на хора с увреждания може да се изисква, ако всеки хардуер контролер не е налична.

Ако имотът не е настроен StartType Автоматична, този хотел се игнорира. Той показва дали услугата не трябва да се започва веднага след като системата ботуши, а малко по-късно. Тази функция се появи в .NET 4 и се поддържа като се започне с Windows Vista.

Този имот е показано как дисплея трябва да изглежда лесен за употреба името на услугата. Това име ще се появи в медиите, да не можете да контролирате услугата и да наблюдават неговата работа.

Този имот се посочва как трябва да изглежда изобщо името на услугата. Неговата стойност трябва да съответства на стойността на SERVICENAME в рамките на програмата ServiceBase първокласно обслужване. С негова помощ ServiceInstaller конфигурация е свързана с желаната програма обслужване.

Този имот показва кой набор от услуги, трябва да се започне преди началото на услугата. Благодарение на него, когато услугата ще първо да се изпълняват автоматично тези зависими услуги, и едва след това на самата услуга.

Промяна на името на услугата в ServiceBase наследена от класа, и не забравяйте да се промени стойността на SERVICENAME имот в ServiceInstaller обекта!

На етапа на тестване е по-добре да се създаде стойност за ръководството за имот StartType. След това, когато не е възможно да се спре на услугата (например, поради наличието в него на дефекта), за да рестартирате системата все още ще бъде получена. В случай на инсталации за StartType стойности Автоматична услуга автоматично ще започне отново, дори и след рестартиране. Уверете се, че услугата работи правилно, стойността на този имот може лесно да бъде променена.

клас ServiceInstallerDialog

Друг клас инсталатор пространство System.ServiceProcess.Design имена е ServiceInstallerDialog. Този клас може да се използва, ако искате по време на инсталацията на да въведете потребителско име и парола, за сметка на системния администратор да бъдат използвани за това. Ако настроите профил клас ServiceProcessInstaller собственост в ServiceAccount.User, и свойствата на потребителско име и парола - до нула, а след това по време на инсталацията ще се появи Set Service Вход диалогов прозорец (Задаване на информацията за регистрация за услугата). Този прозорец също има опция за закриване на инсталационния процес.

полезност installutil

След добавяне класове монтажници в проекта, с полезността installutil.ehe можете да се опитате да инсталирате и деинсталирате на услугата. Тази програма ви позволява да инсталирате и комплект, който има класа Installer. За да завършите инсталацията той предизвиква метод Install () клас наследен от инсталатора и да изтриете предварително инсталиран събрание - съответно деинсталирате () метод.

Команди, които могат да се използват за инсталиране и деинсталиране на услуга се счита за пример, както следва:

Ако процесът на инсталацията е неуспешна, не забравяйте да проверите трупи за настройка и Installutil.InstallLog <имя_службы>.InstallLog. Често те не могат да се открият полезна информация като съобщение "The посочената услуга вече съществува" ( "The посочената услуга вече съществува").

Свързани статии

Подкрепете проекта - споделете линка, благодаря!