Điều kiện:
- Môi trường VS .Net 2005 professional edition (bản express ko có cho dính dáng gì đến services cả -> rầu)
- Mặc định là đã có một service với tên là MyDemoService: (Tạo một service như thế nào?)
- file name : MyDemoService.cs
- class name: MyDemoService
- Mặc định là build service không lỗi, install service thành công vào hệ thống.
Step 1: Kiểm tra configuration mode của solution phải ở chế độ "Debug". Để thay đổi, bạn chọn menu Build -> Configuration Manager.. tại combobox "Active solution configuration" bạn chọn "Debug" -> Close.
- Tại đây, bạn đã có thể nhấn F5 để chạy Debug thử, bạn vẫn có thể đặt breakpoin ở bất cứ đâu, nhưng VS sẽ chỉ cho phép debug trong phạm vi hàm "Main()" trong file Program.cs thôi. Nếu vẫn cố gắng F5, bạn sẽ nhận được thông báo lỗi:
Step2: Nào ta cùng bắt tay vào công việc chính
- Mở file Program.cs, trong hàm static void Main(..), bạn thêm các dòng code sau:
ServicesToRun = new ServiceBase[] { new Service1() }; #if(DEBUG) System.Diagnostics.Debugger.Launch();Step3: Build serivce lại, uninstall phiên bản cũ và install service lại.
//.. code and code
#endif ServiceBase.Run(ServicesToRun);
Đặt breakpoint ở bất cứ đâu bạn muốn, miễn là còn trong vùng code của project.
Step4: Start service của bạn trong của sổ services manager hoặc bằng command. Khi service khởi động, bạn sẽ nhận được một bảng thông báo như sau:
tiếp tục chọn tên service của bạn (1) và nhấn Yes.
!!Oho!!Điều kỳ diệu đã xảy ra, nếu bạn thấy kết quả tương tự như hình sau:
thì bạn đã thành công và tiếp tục nhấn F5 để đến những breakpoint đã đặt trước.
Lưu ý: chỉ có các breakpoint được đặt ở những vị trí code phía sau dòng lệnh "System.Diagnostics.Debugger.Launch();" khả dụng.
Vài ghi chú đầu tiên, chưa có chỉnh sửa hoa mỹ, mong các bạn đọc thông cảm ủng hộ.
Another way: Debug a running process.. (coming soon)
chán "sếp" quá, topic cho "sếp" mà "sếp" ko comment tiếng nào!!
Trả lờiXóa