Megosztás a következőn keresztül:


Útmutató: Szolgáltatások programozott írása

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 Main a 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

  1. 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:

    1. A Megoldáskezelő kattintson a jobb gombbal a Hivatkozások csomópontra, és válassza a Hivatkozás hozzáadása parancsot.

    2. A .NET-keretrendszer lapon görgessen a System.dll, és kattintson a Kijelölés gombra.

    3. Görgessen a System.ServiceProcess.dll, és kattintson a Kijelölés gombra.

    4. Kattintson az OK gombra.

  2. 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 Class
    
  3. Adja 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 Sub
    
  4. Hozzon létre egy metódust Main az osztályhoz, és határozza meg azt a szolgáltatást, amelyet az osztály tartalmazni fog; userService1 az osztály neve:

    public static void Main()
    {
        ServiceBase.Run(new UserService1());
    }
    
    Shared Sub Main()
        System.ServiceProcess.ServiceBase.Run(New UserService1)
    End Sub
    
  5. Bí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 Sub
    
  6. Felü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.

  7. 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.

  8. 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.

  9. 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ő.

  10. Telepítse a szolgáltatást. További információ : How to: Install and Uninstall Services.

Lásd még