.NET Windows hizmeti olarak konsol uygulaması | Netgez.com
SORU
14 EKÄ°M 2011, Cuma


.NET Windows hizmeti olarak konsol uygulaması

Konsol uygulaması var ve Windows hizmeti olarak çalıştırmak istiyorum. VS2010 proje takın konsol ve Windows hizmet oluşturmak için izin veren bir proje şablonu vardır. İsterim ekleyin ayrılmış hizmeti proje ve mümkünse entegre hizmet kodu konsol uygulamasına devam konsol uygulaması olarak bir proje olabilir çalıştırmak gibi bir konsol uygulaması veya windows hizmeti çalıştırmak için örnek komut satırını kullanarak geçer.

Belki birisi hızla ve kolayca c dönüştürebilir hangi sınıf kütüphane veya kod parçacığını hatırlatıyoruz# servisi için konsol uygulaması mı?

CEVAP
14 EKÄ°M 2011, Cuma


Ben genellikle aşağıdaki techinque bir hizmet olarak bir konsol uygulaması olarak ya da: aynı uygulamayı çalıştırmak için kullanın

public static class Program
{
    #region Nested classes to support running as service
    public const string ServiceName = "MyService";

    public class Service : ServiceBase
    {
        public Service()
        {
            ServiceName = Program.ServiceName;
        }

        protected override void OnStart(string[] args)
        {
            Program.Start(args);
        }

        protected override void OnStop()
        {
            Program.Stop();
        }
    }
    #endregion

    static void Main(string[] args)
    {
        if (!Environment.UserInteractive)
            // running as service
            using (var service = new Service())
                ServiceBase.Run(service);
        else
        {
            // running as console app
            Start(args);

            Console.WriteLine("Press any key to stop...");
            Console.ReadKey(true);

            Stop();
        }
    }

    private static void Start(string[] args)
    {
        // onstart code here
    }

    private static void Stop()
    {
        // onstop code here
    }
}

Environment.UserInteractive normal app konsolu için gerçek bir hizmet için yanlıştır. Techically, kullanıcı etkileşimli bir servis modunda çalıştırmak mümkündür, komut satırı anahtarı yerine gidip bakabilirsin.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • BlackBoxTV

    BlackBoxTV

    7 Mayıs 2007
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013