Служба Windows без шаблона VS2005 - PullRequest
0 голосов
/ 13 ноября 2008

У меня стандартная версия VS2005, и MS говорит:

Примечание. Приложение-служба Windows шаблоны проектов и связанные с ними функции не доступны в Стандартная версия Visual Basic и Visual C # .NET ...

Можно ли написать приложение службы Windows без обновления моей версии VS2005 Standard?

Ответы [ 3 ]

1 голос
/ 13 ноября 2008

Если вы можете вырезать и вставить, пример достаточно.

Простой сервис для периодической регистрации статуса другого сервиса. Пример не включает класс ServiceInstaller (который вызывается утилитой установки при установке приложения-службы), поэтому установка выполняется вручную.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.Timers;

namespace SrvControl
{
    public partial class Service1 : ServiceBase
    {
        Timer mytimer;
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            if (mytimer == null)
                mytimer = new Timer(5 * 1000.0);
            mytimer.Elapsed += new ElapsedEventHandler(mytimer_Elapsed);
            mytimer.Start();
        }

        void mytimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            var srv = new ServiceController("MYSERVICE");
            AppLog.Log(string.Format("MYSERVICE Status {0}", srv.Status));
        }

        protected override void OnStop()
        {
            mytimer.Stop();
        }
    }
    public static class AppLog
    {
        public static string z = "SrvControl";
        static EventLog Logger = null;
        public static void Log(string message)
        {
            if (Logger == null)
            {
                if (!(EventLog.SourceExists(z)))
                    EventLog.CreateEventSource(z, "Application");

                Logger = new EventLog("Application");
                Logger.Source = z;
            }
            Logger.WriteEntry(message, EventLogEntryType.Information);
        }
    }
}
0 голосов
/ 13 ноября 2008

Конечно, вам просто нужно написать код самостоятельно. Это на самом деле не очень сложно. Вот несколько ссылок на то, как это сделать:

http://msdn.microsoft.com/en-us/magazine/cc301845.aspx

http://www.aspfree.com/c/a/C-Sharp/Creating-a-Windows-Service-with-C-Sharp-introduction/

0 голосов
/ 13 ноября 2008
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...