рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдорд╛рдзрд╛рди рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдирд╛ рд╣реИред
рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ .Net C #
рдЪрд░рдг 1. рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдБред
Windows рд╕реЗрд╡рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдБ

рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╕реЗрд╡рд╛ рдХреА рд╢реНрд░реЗрдгреА рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред

рдРрд╕рд╛ рдЬрд▓ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛:
namespace ExampleSrv
{
public partial class MyService : ServiceBase
{
public MyService()
{
InitializeComponent();
}
protected override void OnStart( string [] args)
{
}
protected override void OnStop()
{
}
}
}
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реЗрд╡рд╛ рд╣реА рд╣реИред
рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OnStart рдФрд░ OnStop рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЪрд░рдг 2. рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред
рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ... рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЬреЛрдбрд╝реЗрдВ

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ serviceProcessInstaller рдФрд░ serviceInstaller рд╣реИ

рдкрд╣рд▓реЗ рдореЗрдВ рдЖрдк рд▓реЛрдХрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдХрд╛рдЙрдВрдЯ рдХреА рд╡реИрд▓реНрдпреВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░реЗ рдореЗрдВ, рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо, рд╡рд┐рд╡рд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ StartType - Automatic рдХреЛ рд░рдЦрдирд╛ рди рднреВрд▓реЗрдВред

рдЗрдВрд╕реНрдЯреЙрд▓рд░ рддреИрдпрд╛рд░ рд╣реИред
рдЪрд░рдг 3. рд▓реЙрдЧрд┐рдВрдЧред
рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреА рд╕реЗрд╡рд╛ рдХреНрдпрд╛ рдХрд░ рд░рд╣реА рдереА, рдЬрдм рдпрд╣ рд╢реБрд░реВ рд╣реБрдИ, рд╕рдорд╛рдкреНрдд рд╣реБрдИ, рдпрд╛ рдХреБрдЫ рдФрд░, рдЖрдк рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯреВрд▓рдмреЙрдХреНрд╕ рд╕реЗ рдЕрдкрдиреА EventLog рд╕реЗрд╡рд╛ рдкрд░ рдЦреАрдВрдЪреЗрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИ:
public partial class MyService : ServiceBase
{
public MyService()
{
InitializeComponent();
}
protected override void OnStart( string [] args)
{
AddLog( "start" );
}
protected override void OnStop()
{
AddLog( "stop" );
}
public void AddLog( string log)
{
try
{
if (!EventLog.SourceExists( "MyExampleService" ))
{
EventLog.CreateEventSource( "MyExampleService" , "MyExampleService" );
}
eventLog1.Source = "MyExampleService" ;
eventLog1.WriteEntry(log);
}
catch {}
}
}
* This source code was highlighted with Source Code Highlighter .
рдЪрд░рдг 4. рд╕реНрдерд╛рдкрдирд╛ред
рд╕реЗрд╡рд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдкрде рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдлреЙрд░реНрдо рдХрд╛ install.bat рдмрдирд╛рдпрд╛:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe D:\...\ExampleSrv\bin\Debug\ExampleSrv.exe
pause
рдпрджрд┐ рдЖрдкрдиреЗ рдЦрд╛рддрд╛ рдХрд╛ рдореВрд▓реНрдп рдЪрдпрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ - serviceProcessInstaller рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реАрд▓реНрдб, рддреЛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЛ рдЙрд╕ рдЦрд╛рддреЗ рдХреЗ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХреА рдЬрд╛рдПрдЧреАред рдЪреЗрддрд╛рд╡рдиреА! рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдбреЛрдореЗрди рд▓рд┐рдЦрдирд╛!
рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ:
рдкреНрд░рддрд┐рдмрджреНрдз рдЪрд░рдг рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реБрдЖред
рд▓реЗрди-рджреЗрди рд╕реНрдерд╛рдкрд┐рдд рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рд╣рдо рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ:

рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рдПрдХ рджреЛ рдмрд╛рд░ рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░реБрдХ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рд▓реЙрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрд╡рд╛ рдХрдм рд╢реБрд░реВ рдФрд░ рдмрдВрдж рд╣реБрдИред
рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рддреИрдпрд╛рд░ рд╣реИред
рд╕рд╛рдордЧреНрд░реА рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдБ рд╕реЗ рд▓реА рдЧрдИ рд╣реИ:
msdn.microsoft.com/en-us/library/zt39148a (VS.80) .aspx