Cách tạo một Windows Service Applications đơn giản trong Visual Studio với CSharp
Windows Service Applications hay là Microsoft Windows services ( còn gọi là các NT services) cho phép chúng ta viết các ứng dụng chạy ngầm bên trong các phiên làm việc của Windows mà không cần có giao diện người sử dụng để tương tác với chúng.
Mục đích của chúng để thực hiện các công việc theo một quy trình tuần hoàn nào đó với các tham số, cấu hình được định nghĩa trước mà người sử dụng không cần phải can thiệp thông qua giao diện, chúng được thiết lập các tham số để chạy. Các services này có thể được chạy một cách tự động chạy khi máy tính khởi động, có thể tạm dừng và khởi động lại services.
Dưới đây xin trình bày các tạo ra một Window Services đơn giản nhất sử dụng Visual Studio 2012.
Đặt tên cho Project Services rồi nhấn Ok, Project Windows Service sẽ có cấu trúc như sau.
File chính mặc định của Project là Services1.cs, trong ví dụ được đổi thành tên DemoServices.cs theo tên Project.
Các ứng dụng Windows Services do người dùng viết đều được kế thừa từ lớp ServiceBase trong namspace có tên System.ServiceProcess.
1. Ghi lại hoạt động của Services bằng EventLog
Do các Windows Services không có giao diện người sử dụng, nên để theo dõi hoạt động của Services người ta thường sử dụng Log của window để chứa các thông tin liên quan tới các thao tác xử lý bên trong Services. Để cập nhật vào dữ liệu Log của Window. Trong C# người ta sẽ sử dụng lớp EventLog trong namespace System.Diagnostics
Việc khởi tạo đối tượng ghi Log của Window thường diễn ra trong Constructor của lớp Services, trong ví dụ này là DemoServices
Thuộc tính Source dùng để định danh cho Log giúp, thường có tên trùng với ứng dụng để xác định Log này được dùng cho ứng dụng nào, trong ví dụ này là DemoSource. Đoạn code trên giúp kiểm tra xem đã tồn tại Log nào sử dụng tên như vậy trong hệ thống chưa, nếu chưa tồn tại thì thực hiện log.
2. Xử lý nghiệp vụ mang tính tuần hoàn bằng cách sử dụng 1 Timer.
Mục đích sử dụng của Windows Services thường dùng để giải quyết các công việc theo quy trình mang tính chất lặp đi lặp lại và để thực hiện điều này trong Windows Services chúng ta thường sử dụng 1 Timer, Trong C# cung cấp lớp Timer trong namspace System.Timers .
Việc khởi tạo đối tượng Timer của Window thường diễn ra trong Constructor của lớp Services, trong ví dụ này là DemoServices
3. Các phương thức khác.
Khi tạo Windows Services thường sẽ có thêm 2 phương thức cơ bản dùng để khởi động hoặc tắt Services bao gôm OnStart và OnStop như sau
Nếu có sử dụng Timer bên trong Services thì Onstart thường sẽ là nơi dừng quy trình cũ và thự hiện quy trính mới.
Nếu có sử dụng Timer bên trong Services thì OnStop thường sẽ là nơi dừng quy trình cũ
Ngoải ra còn có thể bổ sung cho Services một sốcác phương thức hỗ trợ như tạm dừng ( OnPause), tiêp tục ( OnContinue),..
Dưới đây là toàn bộ code đẩy đủ của ví dụ.
4. Tạo thông tin cài đặt cho Services bằng cách sử dụng lớp Installer
Để cài đặt services cần tạo bộ cài đặt cho Serivces thông qua lớp Installer của namspace System.Configuration.Install
Kích chuột phải vào file DemoServices chọn View Designer trên Visual Studio. Tại View Designer tiếp chọn Add Installer.
5. Thực hiện Cài đặt Services thực tế trên hệ thống
Có nhiểu cách để hỗ trợ bạn cài đặt window services:
Cách 1 : Sử dụng lệnh command line sc để cài đặt Windows Services
Cách 2 : Sử dụng tiên ích có sẵn của Visual Studio – Công cụ Installutil.exe ( thường sử dụng khi tự test)
- Để cài đặt Windows Services, bạn phải có quyền Admin trên máy tính cần cài đặt. Các bước cài nh sau:
Trong Windows 7 và Windows Server, mở Developer Command Prompt của Visual Studio Tools trong Start. Trong Windows 8 hoặc Windows 8.1, chọn Visual Studio Tools trong màn hình Start, và chạy Developer Command Prompt với quyền Admin. (thực hiện right-click trên Developer Command Prompt, và chọn Run as Administrator.)
Mở Command Prompt window, di chuyển tới file Exe project Windows Serivces của bạn. Ví dụ của tôi là: Visual Studio 2013\Projects\WindowSerivcesDemo\bin\Debug.
Chạy dòng lệnh sau:
Cách 3 : Tạo Project cài đặt, được sử dụng khi Services được tạo trên máy khách hàng
Xem chi tiết : tại đây
Cách 4 : Sử dụng bằng tay với các lệnh của PowerShell
Một sỗ lỗi khi cài đặt
– Lỗi : “The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security.”
– Khắc phục : chạy Developer Command Prompt với quyền Admin
6. Kiểm tra Services sau cài đặt
Kiểm tra services cài đặt thành công chưa bằng cách mở màn hình Start hoăc menu Start, và gõ services.msc.
Start Services bằng cách kích chuột phải và Start. Kiểm tra log xem thông tin hoạt động của Services.
Nguồn: https://hoctoantap.com/2016/08/12/cach-tao-mot-windows-service-applications-don-gian-trong-visual-studio-voi-csharp.html
Không có nhận xét nào:
Đăng nhận xét