Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Bước 1 -

Tạo một ứng dụng dịch vụ windows mới.

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Bước 2 -

Để chạy một Dịch vụ Windows, bạn cần cài đặt Trình cài đặt, trình cài đặt này sẽ đăng ký nó với Trình quản lý kiểm soát dịch vụ. Nhấp chuột phải vào Service1.cs [Design] và AddInstaller.

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Bước 3 -

Nhấp chuột phải vào ProjectInstaller.cs [Thiết kế] và chọn mã chế độ xem.

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

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

Nhấn F12 và chuyển đến phần triển khai của lớp InitializeComponent. Thêm tên dịch vụ và mô tả sẽ là tên của dịch vụ windows trong quá trình cài đặt.

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

Bước 4 -

Bây giờ, chúng ta hãy thêm logic bên dưới để ghi dữ liệu nhật ký vào tệp văn bản trong lớp 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);
            }
         }
      }
   }
}

Bước 5 (Cài đặt) -

Bây giờ chúng ta sẽ cài đặt dịch vụ windows của mình bằng dấu nhắc lệnh. Mở commandprompt với tư cách quản trị viên và cung cấp lệnh dưới đây.

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Mở thư mục chứa tệp exe dịch vụ windows của chúng tôi và chạy lệnh dưới đây.

InstallUtil.exe C:\Users\[UserName]
source\repos\DemoWindowsService\DemoWindowsService\bin\Debug\
DemoWindowsService.exe

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Bây giờ, hãy mở Dịch vụ từ menu ứng dụng của windows.

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?

Chúng tôi có thể thấy rằng dịch vụ windows của chúng tôi đã được cài đặt và bắt đầu chạy như mong đợi.

Kết quả bên dưới cho thấy rằng dịch vụ đang chạy và kết nối nhật ký với tệp văn bản như mong đợi.

Làm thế nào để cài đặt một dịch vụ windows bằng cách sử dụng dấu nhắc lệnh windows trong C #?