Aracılığıyla paylaş


Nasıl Yapılır: Hizmetleri Programlamayla Yazma

Not

Bu makale .NET'te barındırılan hizmetler için geçerli değildir. ve Çalışan Hizmeti şablonunu kullanan Microsoft.Extensions.Hosting.BackgroundService Windows hizmetleriyle ilgili en son içerik için bkz:

Windows Hizmeti proje şablonunu kullanmamayı seçerseniz devralma ve diğer altyapı öğelerini kendiniz ayarlayarak kendi hizmetlerinizi yazabilirsiniz. Program aracılığıyla bir hizmet oluşturduğunuzda, şablonun sizin için işleyebilecekleri birkaç adım gerçekleştirmeniz gerekir:

  • Hizmet sınıfınızı sınıfından ServiceBase devralacak şekilde ayarlamanız gerekir.

  • Hizmet projeniz için çalıştırılacak hizmetleri tanımlayan ve üzerinde yöntemini çağıran Run bir Main yöntem oluşturmanız gerekir.

  • ve OnStop yordamlarını geçersiz kılmanız OnStart ve çalıştırmalarını istediğiniz kodu doldurmanız gerekir.

Program aracılığıyla bir hizmet yazmak için

  1. Boş bir proje oluşturun ve aşağıdaki adımları izleyerek gerekli ad alanlarına bir başvuru oluşturun:

    1. Çözüm Gezgini'da Başvurular düğümüne sağ tıklayın ve Başvuru Ekle'ye tıklayın.

    2. .NET Framework sekmesinde, ekranı kaydırarak System.dll ve Seç'e tıklayın.

    3. ekranı kaydırarak System.ServiceProcess.dll ve Seç'e tıklayın.

    4. Tamam'a tıklayın.

  2. Bir sınıf ekleyin ve öğesinden ServiceBasedevralacak şekilde yapılandırın:

    public class UserService1 : ServiceBase
    {
    }
    
    Public Class UserService1
        Inherits System.ServiceProcess.ServiceBase
    End Class
    
  3. Hizmet sınıfınızı yapılandırmak için aşağıdaki kodu ekleyin:

    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. Sınıfınız için bir Main yöntem oluşturun ve sınıfınızın içereceği hizmeti tanımlamak için kullanın; userService1 sınıfın adıdır:

    public static void Main()
    {
        ServiceBase.Run(new UserService1());
    }
    
    Shared Sub Main()
        System.ServiceProcess.ServiceBase.Run(New UserService1)
    End Sub
    
  5. OnStart yöntemini geçersiz kılın ve hizmetiniz başlatıldığında gerçekleşmesini istediğiniz tüm işlemleri tanımlayın.

    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. Özel işleme tanımlamak istediğiniz diğer yöntemleri geçersiz kılın ve hizmetin her durumda gerçekleştirmesi gereken eylemleri belirlemek için kod yazın.

  7. Hizmet uygulamanız için gerekli yükleyicileri ekleyin. Daha fazla bilgi için bkz . Nasıl yapılır: Hizmet Uygulamanıza Yükleyici Ekleme.

  8. Derleme menüsünden Çözüm Derle'yi seçerek projenizi derleyin.

    Not

    Projenizi çalıştırmak için F5 tuşuna basmayın; bir hizmet projesini bu şekilde çalıştıramazsınız.

  9. Hizmetinizi yüklemek için bir kurulum projesi ve özel eylemler oluşturun. Örnek için bkz. İzlenecek Yol: Bileşen Tasarım Aracı Windows Hizmet Uygulaması Oluşturma.

  10. Hizmeti yükleyin. Daha fazla bilgi için bkz . Nasıl yapılır: Hizmetleri Yükleme ve Kaldırma.

Ayrıca bkz.