рд╣рдо рдЕрдкрдиреА рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд┐рд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рд╣рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рд╢реЙрд░реНрдЯрдХрдЯ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдЧрд▓рдд рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреЛ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рддреЛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред



рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдорд╛рдзрд╛рди рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдирд╛ рд╣реИред



рд╕реНрдЯреВрдбрд┐рдпреЛ 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 рд╣реИ



img04



рдкрд╣рд▓реЗ рдореЗрдВ рдЖрдк рд▓реЛрдХрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдХрд╛рдЙрдВрдЯ рдХреА рд╡реИрд▓реНрдпреВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рджреВрд╕рд░реЗ рдореЗрдВ, рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо, рд╡рд┐рд╡рд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ 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



All Articles