SORU
27 ŞUBAT 2009, Cuma


Kolay bir Windows hizmeti oluşturmak için dil

Windows hizmet oluşturmak için en kolay olan dil nedir?

Bu durumda en kolay kod olarak az miktarda tanımlanmış olacağını ve en düşük diline giriş noktası.

CEVAP
27 ŞUBAT 2009, Cuma


Eğer herhangi bir C/C /Java arka plan varsa ... açık konuşmak gerekirse risk, bence C# giriş en alt noktası sunmaktadır.

Aşağıdaki adımları takip edebilirsiniz 2008, Visual Studio kullanıyorsanız varsayarak:

  1. Açık Visual Studio 2008 ve seçin Dosya|Yeni|Proje menü seçeneği.
  2. Yeni Proje) iletişim...
    • Proje türleri#|Visual C, Windows düğümünü seçin
    • Windows Service şablonu seçin
    • Projeniz için bir ad ve konum girin
    • TAMAM tuşuna basın
  3. Bu noktada, Windows hizmetiniz için tüm temel var. Program.cs dosya Ana içerir() hizmet ve Service1.yöntem cs Sistemi tanımlar.ServiceProcess.Yeni bir Windows hizmeti olan bileşen ServiceBase.
  4. Service1 bileşen için Özellik Kılavuzunda, en azından aşağıdaki özellikleri ayarlama göz önünde bulundurun:
    • (İsim) - nesne sezgisel bir isim, örneğin, ServiceExample ver
    • Olun - ayarlamak için false önlemek olaylardan yazılıyor varsayılan olarak Uygulama olay günlüğüne (Not: ben demiyorum etmemelisin günlük servis olayları; sadece tercih yazmak için benim kendi olay günlüğü yerine Uygulama günlüğü - aşağıya bakınız)
    • CanShutdown - Eğer sistem kapatmalar işlemek istiyorsanız true ayarlayın
    • ServiceName - hangi hizmet, Hizmet Denetim Yöneticisi (SCM) bilinecek adı tanımlar
  5. ServiceExample kodu, OnStart() ve OnStop() sanal fonksiyonlar bir saplama. Bu hizmet açıkçası yapması gereken ne ile doldurmak gerekir. true, CanShutdown özelliği değiştirdiyseniz OnShutdown yöntemi geçersiz kılmak isteyebilirsiniz. Bu fonksiyonların kullanımını gösteren, aşağıda bir örnek oluşturdum.
  6. Bu noktada, ServiceExample hizmeti aslında tam değildir, ama yine de yüklemek için bir yol gerekir. Bunu yapmak için, tasarımcısı ServiceExample bileşeni açın. Herhangi bir yere sağ tıklayın tasarımcı panelinde ve Yükleyici Ekle menü seçeneğini seçin. Bu iki ek bileşenleri - serviceprocessınstaller1 ve serviceınstaller1 içeren proje, Projectİnstaller bir bileşen ekler.
  7. Tasarımcısı serviceprocessınstaller1 bileşeni seçin. Özellik kılavuzda, aşağıdaki özelliklere ayarlama göz önünde bulundurun:
    • (İsim) - nesne sezgisel bir isim, örneğin, serviceprocessınstaller ver
    • Hesap - en az güvenlik açığına seçin, ama eğer daha fazla hizmet ayrıcalıkları gerektiriyorsa Açarsa veya yerel sistem hesabını kullanmak zorunda kalabilirsiniz
  8. Tasarımcısı serviceınstaller1 bileşeni seçin. Özellik kılavuzda, aşağıdaki özelliklere ayarlama göz önünde bulundurun:
    • (İsim) - sezgisel bir isim, örneğin, serviceİnstaller nesne verin
    • Açıklama hizmetiniz için SCM görünecektir hangi hizmetin açıklaması
    • Görünen isim - hizmetiniz için SCM görünecek hizmetiniz için kolay adı
    • ServiceName - bu ServiceExample bileşenin ServiceName özelliği için seçtiğiniz aynı adı olduğundan emin olun (Bkz: Adım 4)
    • Eğer bu hizmeti otomatik veya manuel olarak başlatmak istiyorsanız olarak - gösteriyor
  9. Ben kendi olay günlüğüne olay yazma Uygulama olay yerine tercih günlük söylediğimi hatırlıyorum. Bunu yapmak için, özel bir Projectİnstaller varsayılan Eventlogınstaller değiştirmeniz gerekir. Senin Projectİnstaller için kodunuzu şöyle yap:

< / ^ hr .

using System.Diagnostics;
[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();

        EventLogInstaller installer = FindInstaller(this.Installers);
        if (installer != null)
        {
            installer.Log = "ServiceExample"; // enter your event log name here
        }
    }

    private EventLogInstaller FindInstaller(InstallerCollection installers)
    {
        foreach (Installer installer in installers)
        {
            if (installer is EventLogInstaller)
            {
                return (EventLogInstaller)installer;
            }

            EventLogInstaller eventLogInstaller = FindInstaller(installer.Installers);
            if (eventLogInstaller != null)
            {
                return eventLogInstaller;
            }
        }
        return null;
    }
}

Bu noktada, projeniz Windows çalıştırılabilir hizmeti almak için inşa edebilirsiniz. Hizmet yüklemek için Visual Studio 2008 komut istemi açın ve hata Ayıklama gidin veya yürütülebilir dosyanın bulunduğu dizini Bırakın. Komut isteminde, aşağıdaki komutu yazın:İnstallUtil ServiceExample.exe. Bu yerel makinede servis kuracak. Onu kaldırmak için, komut isteminde aşağıdaki komutu yazın:İnstallUtil /u ServiceExample.exe

Hizmet çalışmadığı sürece, hizmet değişiklikler yapabilirsiniz ve yeniden inşa, yani, hizmetiniz değişiklik yapmak için kaldırmak zorunda değilsiniz. Ancak, düzeltmeleri ve geliştirmeler ile çalıştırılabilir çalıştığı sürece üzerine yazmak mümkün olmayacaktır.

Eylem hizmetinizi görmek, ServiceExample açın.cs ve aşağıdaki dosya değişikliklerini yapın:

using System.Diagnostics;
public partial class ServiceExample : ServiceBase
{
    public ServiceExample()
    {
        // Uncomment this line to debug the service.
        //Debugger.Break();

        InitializeComponent();

        // Ties the EventLog member of the ServiceBase base class to the
        // ServiceExample event log created when the service was installed.
        EventLog.Log = "ServiceExample";
    }

    protected override void OnStart(string[] args)
    {
        EventLog.WriteEntry("The service was started successfully.", EventLogEntryType.Information);
    }

    protected override void OnStop()
    {
        EventLog.WriteEntry("The service was stopped successfully.", EventLogEntryType.Information);
    }

    protected override void OnShutdown()
    {
        EventLog.WriteEntry("The service was shutdown successfully", EventLogEntryType.Information);
    }
}

Bu değişiklikler ile hizmet çalıştırdıktan sonra, Olay Görüntüleyicisi ServiceExample olay günlüğüne bakın ve iletileri günlüğe görebilirsiniz.

Bu yardımcı olur umarım.

Eğer olay özel bir yerine giriş için Uygulama olay günlüğünü kullanma, projectınstaller herhangi bir değişiklik yapmak sadece size kalmış.EDİT: cs dosyası. Buna ek olarak, ServiceExample oluşturucu olay Günlüğü Günlüğü özelliği ayarlar satırı bırakın. Hizmet çalıştırdığınızda, günlük iletileri, Uygulama olay günlüğünde görünür.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • Liam Underwood

    Liam Underwo

    19 Mayıs 2009
  • TechXCentral

    TechXCentral

    12 Temmuz 2011