चरण 1 −
एक नया विंडोज़ सेवा अनुप्रयोग बनाएँ।
चरण 2 −
Windows सेवा चलाने के लिए, आपको इंस्टालर स्थापित करने की आवश्यकता है, जो इसे सेवा नियंत्रण प्रबंधक के साथ पंजीकृत करता है। Service1.cs[Design] और AddInstaller पर राइट क्लिक करें।
चरण 3 -
ProjectInstaller.cs [डिज़ाइन] पर राइट क्लिक करें और व्यू कोड चुनें।
using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration.Install; using System.Linq; using System.Threading.Tasks; namespace DemoWindowsService{ [RunInstaller(true)] public partial class ProjectInstaller : System.Configuration.Install.Installer{ public ProjectInstaller(){ InitializeComponent(); } } }
F12 दबाएं और InitializeComponent वर्ग के कार्यान्वयन पर जाएं। सेवा का नाम और विवरण जोड़ें जो स्थापना के दौरान विंडोज़ सेवा का नाम होगा।
private void InitializeComponent(){ this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller(); this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller(); // // serviceProcessInstaller1 // this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService; this.serviceProcessInstaller1.Password = null; this.serviceProcessInstaller1.Username = null; // // serviceInstaller1 // this.serviceInstaller1.Description = "My Demo Service"; this.serviceInstaller1.ServiceName = "DemoService"; // // ProjectInstaller // this.Installers.AddRange(new System.Configuration.Install.Installer[] { this.serviceProcessInstaller1, this.serviceInstaller1}); }
चरण 4 -
अब हम Service1.cs वर्ग में टेक्स्ट फ़ाइल में लॉग डेटा लिखने के लिए नीचे तर्क जोड़ते हैं।
using System; using System.IO; using System.ServiceProcess; using System.Timers; namespace DemoWindowsService{ public partial class Service1 : ServiceBase{ Timer timer = new Timer(); public Service1(){ InitializeComponent(); } protected override void OnStart(string[] args){ WriteToFile("Service started at " + DateTime.Now); timer.Elapsed += new ElapsedEventHandler(OnElapsedTime); timer.Interval = 5000; timer.Enabled = true; } protected override void OnStop(){ WriteToFile("Service stopped at " + DateTime.Now); } private void OnElapsedTime(object source, ElapsedEventArgs e){ WriteToFile("Service recall at " + DateTime.Now); } public void WriteToFile(string Message){ string path = @"D:\Demo"; if (!Directory.Exists(path)){ Directory.CreateDirectory(path); } string filepath = @"D:\Demo\Log.txt"; if (!File.Exists(filepath)){ using (StreamWriter sw = File.CreateText(filepath)){ sw.WriteLine(Message); } } else { using (StreamWriter sw = File.AppendText(filepath)){ sw.WriteLine(Message); } } } } }
चरण 5 (स्थापना) −
अब हम कमांड प्रॉम्प्ट का उपयोग करके अपनी विंडोज़ सेवा स्थापित करेंगे। कमांडप्रॉम्प्ट को व्यवस्थापक के रूप में खोलें और निम्न कमांड प्रदान करें।
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
वह फ़ोल्डर खोलें जहां हमारी विंडोज़ सेवा exe फ़ाइल मौजूद है और नीचे कमांड चलाएँ।
InstallUtil.exe C:\Users\[UserName] source\repos\DemoWindowsService\DemoWindowsService\bin\Debug\ DemoWindowsService.exe
अब विंडोज़ एप्लिकेशन मेनू से सेवाएँ खोलें।
हम देख सकते हैं कि हमारी विंडोज़ सेवा स्थापित हो गई है और उम्मीद के मुताबिक चलने लगी है।
नीचे दिए गए आउटपुट से पता चलता है कि सेवा चल रही है और लॉग को टेक्स्ट फ़ाइल में अपेक्षित रूप से तार-तार कर रही है।