没有VS2005模板的Windows服务

时间:2008-11-13 12:50:55

标签: c# windows-services

我有VS2005标准版,MS说这个:

  

注意:Windows服务应用程序   项目模板和相关的   功能不在   Visual Basic和。标准版   Visual C#.NET ...

是否可以在不升级VS2005标准版的情况下编写Windows服务应用程序?

3 个答案:

答案 0 :(得分:1)

如果你可以剪切和粘贴,一个例子就足够了。

定期记录其他服务状态的简单服务。该示例不包括ServiceInstaller class(在安装服务应用程序时由安装实用程序调用),因此安装是手动完成的。

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);
        }
    }
}

答案 1 :(得分:0)

答案 2 :(得分:0)

当然,您只需要自己编写代码。实际上并不是很难。以下是有关如何操作的几个参考:

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/