Подумайте о статически типизированном языке, вещи на prototype
статичны, а вещи на this
связаны с экземпляром.
Абсолютно Вы можете. Можно даже сделать это с csc
. Единственная вещь в VS шаблон . Но можно сослаться на System.ServiceProcess.dll сами.
Ключевые пункты:
ServiceBase
Main()
, используйте ServiceBase.Run(yourService)
ServiceBase.OnStart
переопределение, породите любой новый поток и т.д., необходимо сделать работу (Main()
потребности выйти быстро, или это рассчитывает как неудавшийся запуск) , которым был бы Очень простой код шаблона:
Program.cs:
using System;
using System.ServiceProcess;
namespace Cron
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
System.ServiceProcess.ServiceBase.Run(new CronService());
}
}
}
CronService.cs:
using System;
using System.ServiceProcess;
namespace Cron
{
public class CronService : ServiceBase
{
public CronService()
{
this.ServiceName = "Cron";
this.CanStop = true;
this.CanPauseAndContinue = false;
this.AutoLog = true;
}
protected override void OnStart(string[] args)
{
// TODO: add startup stuff
}
protected override void OnStop()
{
// TODO: add shutdown stuff
}
}
}
CronInstaller.cs:
using System.ComponentModel;
using System.Configuration.Install;
using System.ServiceProcess;
[RunInstaller(true)]
public class CronInstaller : Installer
{
private ServiceProcessInstaller processInstaller;
private ServiceInstaller serviceInstaller;
public CronInstaller()
{
processInstaller = new ServiceProcessInstaller();
serviceInstaller = new ServiceInstaller();
processInstaller.Account = ServiceAccount.LocalSystem;
serviceInstaller.StartType = ServiceStartMode.Manual;
serviceInstaller.ServiceName = "Cron"; //must match CronService.ServiceName
Installers.Add(serviceInstaller);
Installers.Add(processInstaller);
}
}
И сервисное приложение.NET не установлен тот же путь как нормальное сервисное приложение (т.е. Вы не можете использовать cron.exe /install
или некоторый другой параметр командной строки. Вместо этого необходимо использовать SDK.NET InstallUtil
:
InstallUtil /LogToConsole=true cron.exe
Вы могли попробовать Visual Web Developer Express наряду с coding4fun библиотекой комплекта разработчика для веб-сервисов (через обертки управляемого кода):-
http://www.microsoft.com/express/samples/c4fdevkit/default.aspx
Express Edition может записать и скомпилировать проекты службы Windows, но это не может обычно создавать их. Единственный простой способ состоит в том, чтобы создать новый сервисный проект в Visual Studio и затем скопировать файлы проекта в машину с Express Edition. После этого Вам больше не нужна Visual Studio.
существует 3 способа выполнить это:
Однако, Вы все еще столкнетесь с некоторыми трудностями такой, как будто Вы хотите переименовать свой проект или не иметь для повторения этого для каждого нового сервиса. Лучшее долгосрочное решение состоит в том, чтобы заставить босса наконец платить за копию Стандартного или Профессионального выпуска.
Согласно этот статья MSDN у Вас нет шаблона проекта для сервиса. Но я вполне уверен, что, если Вы знаете то, что шаблон делает для Вас, можно создать и скомпилировать сервис.