Nyelv
Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Feljegyzés
Ez a cikk nem vonatkozik a .NET-ben üzemeltetett szolgáltatásokra. A Windows-szolgáltatások és Microsoft.Extensions.Hosting.BackgroundService a Worker Service-sablon legújabb tartalmaiért tekintse meg a következőt:
Ha úgy dönt, hogy nem használja a Windows Service-projektsablont, saját szolgáltatásokat írhat az öröklés és más infrastruktúraelemek beállításával. Amikor programozott módon hoz létre szolgáltatást, több olyan lépést kell végrehajtania, amelyet a sablon egyébként kezelne:
A szolgáltatásosztályt úgy kell beállítania, hogy örököljön az ServiceBase osztálytól.
Létre kell hoznia egy metódust
Maina szolgáltatási projekthez, amely meghatározza a futtatandó szolgáltatásokat, és meghívja a Run metódust rajtuk.Felül kell bírálnia az OnStart eljárásokat és OnStop ki kell töltenie minden olyan kódot, amelyet futtatni szeretne.
Szolgáltatás programozott írása
Hozzon létre egy üres projektet, és hozzon létre egy hivatkozást a szükséges névterekre az alábbi lépések végrehajtásával:
A Megoldáskezelő kattintson a jobb gombbal a Hivatkozások csomópontra, és válassza a Hivatkozás hozzáadása parancsot.
A .NET-keretrendszer lapon görgessen a System.dll, és kattintson a Kijelölés gombra.
Görgessen a System.ServiceProcess.dll, és kattintson a Kijelölés gombra.
Kattintson az OK gombra.
Adjon hozzá egy osztályt, és konfigurálja úgy, hogy a következőtől ServiceBaseörököljön:
public class UserService1 : ServiceBase { }Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End ClassAdja hozzá a következő kódot a szolgáltatásosztály konfigurálásához:
public UserService1() { ServiceName = "MyService2"; CanStop = true; CanPauseAndContinue = true; AutoLog = true; }Public Sub New() Me.ServiceName = "MyService2" Me.CanStop = True Me.CanPauseAndContinue = True Me.AutoLog = True End SubHozzon létre egy metódust
Mainaz osztályhoz, és határozza meg azt a szolgáltatást, amelyet az osztály tartalmazni fog;userService1az osztály neve:public static void Main() { ServiceBase.Run(new UserService1()); }Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End SubBírálja felül a metódust OnStart , és határozza meg a szolgáltatás indításakor elvégezni kívánt feldolgozást.
protected override void OnStart(string[] args) { // Insert code here to define processing. }Protected Overrides Sub OnStart(ByVal args() As String) ' Insert code here to define processing. End SubFelülbírálhatja azokat a metódusokat, amelyekhez egyéni feldolgozást szeretne definiálni, és kódot kell írnia annak meghatározásához, hogy a szolgáltatásnak milyen műveleteket kell végrehajtania minden esetben.
Adja hozzá a szolgáltatásalkalmazáshoz szükséges telepítőket. További információ : Telepítők hozzáadása a szolgáltatásalkalmazáshoz.
A buildeléshez válassza a Build menü Build Solution (Megoldás létrehozása) elemét.
Feljegyzés
Ne nyomja le az F5 billentyűt a projekt futtatásához – így nem futtathat szolgáltatásprojektet.
Hozzon létre egy telepítőprojektet és a szolgáltatás telepítéséhez szükséges egyéni műveleteket. Példa: Útmutató: Windows-szolgáltatásalkalmazás létrehozása a Komponens Tervező.
Telepítse a szolgáltatást. További információ : How to: Install and Uninstall Services.