Tải bản đầy đủ (.ppt) (28 trang)

Lập trình windows service với .net frame work potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (730.7 KB, 28 trang )



Lập Trình WINDOWS SERVICE
Với .NET FrameWork



Windows Service, còn gọi là NT Service, trước đây được
tạo bằng C++ sử dụng cho hệ điều hành Windows NT,
Windows 2000 và XP.

Windows Service được xem như là một loại ứng dụng
Windows, không có giao diện, chạy thường trú, và giao
tiếp với các ứng dụng khác hoặc người sử dụng thông qua
các lời gọi hàm nảy sinh do sự kiện.

Windows trao đổi thông tin với môi trường bên ngoài qua
cơ chế thông điệp hay ghi chú sự kiện (event log).

Ví dụ : ta cần xử lý thông tin trên các file được gởi về từ
Internet thông qua FTP, thời điểm file được gởi về không
được biết trước : cần một service thường trú để kiểm tra
luồng file từ FTP, và có hành động xử lý thích hợp.
Tổng quan


Tạo Windows Service từ Visual Studio .NET

Tạo project mới với loại project là Windows Service, đặt
tên là LearningVBservice




Double click vào cửa sổ Service1.vb[Design] để vào cửa
sổ mã của Service1.vb



Đổi tên dòng Public Class Service1 thành Public Class
UsageMonitor



Click vào region mã Component Designer generated code để
mở vùng mã của Service do VB phát sinh tự động.

Trong hàm Main, sửa dòng mã
ServicesToRun = New System.ServiceProcess.ServiceBase() {New Service1}
Thành
ServicesToRun = New System.ServiceProcess.ServiceBase() {New UsageMonitor}

Trong hàm InitializeComponent, sửa dòng mã
Me.ServiceName = "Service1“
Thành
Me.ServiceName = “UsageMonitor“



Trở về cửa sổ Service1.vb[Designer], mở ToolBox 
Component, kéo thả điểu khiển Timer và
PerformanceCounter lên Designer




Đặt tính chất Interval của điều khiển Timer1 thành 1000
(miligiây).



Đặt các tính chất của điều khiển PerformanceCounter1 thành :
CategoryName thành “processor”,
CounterName thành “% Processor Time”
InstanceName thành “_Total”
MachineName thành <tên máy tính>



Viết mã cho sự kiện Elaspe của điều khiển Timer1 :

Viết mã cho hàm OnStart của service :



Viết mã cho hàm OnStop, OnContinue của service :



Click phải chuột lên cửa sổ Service1.vb [Design], chọn
Add Installer, thành phần ProjectInstaller được thêm vào
project :




Thành phần ServiceInstaller sử dụng để cài đặt Service
UsageMonitor vào hệ điều hành.



Thành phần ProcessServiceInstaller sử dụng để cài đặt
tiến trình (process) quản lý service UsageMonitor.


Biên dịch Windows Service

Chọn menu Project  Project Properties, định lại mục
Startup object là UsageMonitor.

Chọn menu Debug  Start để tiến hành biên dịch.

Sau khi biên dịch thành công, màn hình hiện ra thông báo
cho biết rằng cần phải được cài đặt vào hệ điều hành sử dụng
công cụ installutil.exe.



Sử dụng Windows Exloprer, tìm file InstallUtil.exe trong
folder C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
(hoặc dùng chức năng search của Windows).

Copy file này vào thư mục bin của project LearningVBService



Debug Windows Service



Khởi động ứng dụng Command Prompt của Windows: từ
Windows XP, chọn Start  All Programs  Accessories 
Command Prompt.

Trong Command Prompt, chuyển sang folder của project
LearningVBservice. Gõ dòng lệnh :
installutil LearningVBservice.exe





Màn hình hiện ra hộp thoại yêu cầu, gõ vào username và
password của máy tính được phép cài đặt service.

Sau khi cài đặt service thành công, cửa sổ Command
Prompt hiện ra thông báo :
The Commit phase completed successfully.
The transacted install has completed.



Từ Windows, mở cửa sổ Control Panel  Administrative
Tools  Services , bạn sẽ thấy mục service UsageMonitor đã
được install vào hệ thống.




Click phải chuột vào service UsageMonitor, chọn
Properties.

Cửa sổ Properties của service hiện ra, chọn thẻ Log On,
chọn mục Log On As  Local System account  Apply.



Chọn thẻ General  Start để khởi động service.

Chờ vài giây, sau đó chọn Stop để ngưng service.

Mở tập tin Output.txt được tạo ra từ service để xem kết
quả ().


Các sự kiện của Windows Service

OnStart : Khởi phát khi service được khởi động.

OnPause : Nếu tính chất CanPauseAndContinue của
service được đặt là true, service có thể được tạm dừng và
kích hoạt trở lại bởi người quản trị Windows.

OnContinue : Khởi phát khi service được kích hoạt trở lại.

OnStop : Khởi phát trước khi service ngưng hoạt động.


OnShutDown : Nếu tính chất CamShutDown được đặt là
true, sự kiện này sẽ được khởi phát khi service vẫn đang
trong trạng thái chạy (running) và máy tính bị shutdown.


Debug Windows Service

Windows service không thể được debug như những
project thông thường, vì service chỉ được chạy sau khi đã
được cài đặt vào hệ điều hành.
Debug LeaningVB Service:

Đặt một điểm Break Point trong hàm xử lý sự kiện Elapse
của Timer1.

Chọn menu Debug  Processes, chọn mục
LearningVBService.exe

Click nút lệnh Attach, chọn mục Common Language
Runtime và click OK

Lúc này, service sẽ được chạy và dừng lại ở điểm Break
Point đã đặt ở trên, tiến hành chạy từng bước service để
debug như cách thông thường.

×