Tôi đang sử dụng Trình phân tích cú pháp nhật ký của Microsoft trong Dịch vụ Windows là gì. Chương trình hoạt động trong một trang web thông thường nhưng khi tôi đặt mã trong một cửa sổ dịch vụ nó không hoạt động. Tôi đặt Breakponts trong dịch vụ windows nhưng khi tôi chạy mã chương trình không dừng lại ở điểm ngắt. Vì vậy, thông qua xử lý sự cố của tôi, tôi đã thu hẹp vấn đề xuống phần mềm Log Parser và LINQ. Vì vậy, hoặc LINQ hoặc phần mềm phân tích cú pháp đăng nhập đang tạo ra sự cố. Các bạn có ý kiến gì không?Cách tốt nhất để gỡ lỗi chương trình Dịch vụ Windows trong Visual Studio 2008
Trả lời
Tôi đã thực hiện nhiều cách này trong quá khứ tùy thuộc vào cách chương trình chạy. Tôi nghĩ rằng cách dễ nhất được thực hiện với một chỉ thị tiền xử lý #DEBUG xung quanh Debugger.Launch() theo cách đó khi bạn đã xây dựng dự án đã tối ưu hóa cuộc gọi Debugger.Launch() sẽ không được biên dịch vào trong assembly. Một trong những cách chúng tôi cũng đã làm được thực hiện nhiệm vụ này là với System.Windows.Forms.MessageBox.Show ("đính kèm") cho phép chúng tôi tự đính kèm vào trình gỡ rối bất cứ khi nào "đính kèm" hộp thoại đã được hiển thị.
Cách cuối cùng mà tôi không thích là thay đổi hành vi dịch vụ của bạn dựa trên các thông số dòng lệnh được truyền vào. Về cơ bản chọn KHÔNG bắt đầu các dịch vụ bằng ServiceBase.Run bất cứ khi nào một tham số cụ thể được kích hoạt, nhưng gọi một lớp đóng gói hành vi/chức năng chính của dịch vụ.
Bạn cần đính kèm trình gỡ lỗi của mình trực tiếp với Dịch vụ Windows. Điều này có thể giúp bạn: http://msdn.microsoft.com/en-us/library/7a50syb3%28VS.80%29.aspx.
Bạn có muốn gỡ lỗi phương pháp OnStart không? Nếu vậy, bạn có thể sử dụng phương thức System.Diagnostics.Debugger.Launch()
hoặc System.Diagnostics.Debugger.Break()
để có cơ hội đính kèm trình gỡ lỗi trong khi phương thức khởi động đang chạy, nếu không bạn sẽ luôn đến muộn bằng cách đính kèm trình gỡ rối.
Tôi nghĩ rằng đề nghị của mèo béo gắn trình gỡ lỗi của bạn vào quy trình dịch vụ có vẻ đúng. Nếu vẫn không hiệu quả, hãy thử sử dụng Debug.WriteLine và DebugView.
- 1. Gỡ lỗi chương trình CygWin gcc được biên dịch bởi Visual Studio 2008
- 2. Visual Studio 2008 - Chương trình thoát ngay lập tức với F5 (bắt đầu gỡ lỗi)
- 3. Làm cách nào để biên dịch cho Windows XP trong windows 7/visual studio 2008
- 4. Cách tốt để gỡ lỗi lỗi thiết kế Visual Studio
- 5. Gỡ lỗi Visual Studio 2008 không dừng lại do lỗi
- 6. Làm cách nào để thiết lập Visual Studio 2008 thành chương trình trong Perl?
- 7. Làm cách nào để sử dụng trình gỡ lỗi gdb MinGW để gỡ lỗi chương trình C++ trong Windows?
- 8. Visual Studio 2008 SP1 - Cách dừng gỡ lỗi trong các trình duyệt khác so với IE?
- 9. Làm thế nào để xem các Biến Phiên trong Trình gỡ lỗi Visual Studio 2008?
- 10. Visual Studio 2008 Chiến lược gỡ lỗi 64 bit
- 11. Prefast với Visual studio 2008
- 12. Tridion: Trình tạo mẫu và Visual studio gỡ lỗi
- 13. Đầu vào đường ống vào chương trình C++ để gỡ lỗi trong Visual Studio
- 14. Cách nhanh nhất để viết & biên dịch một chương trình C/C++ trong Windows
- 15. Cách gỡ lỗi một thư viện lớp trong Visual Studio
- 16. Gỡ lỗi tệp kết xuất trong Visual Studio
- 17. Visual Studio không có đủ đặc quyền để gỡ lỗi quá trình này. Để gỡ lỗi quá trình này, Visual Studio phải được chạy với tư cách là quản trị viên
- 18. cách gỡ lỗi các dịch vụ góc trong trình duyệt
- 19. Cách tốt nhất để gỡ lỗi sự cố trong objc_msgGửi?
- 20. Cắt xén chương trình trong VS 2008
- 21. Làm thế nào để gỡ lỗi hai ứng dụng web/dịch vụ trên IIS từ trong Visual Studio?
- 22. Cách gỡ lỗi chỉ một chuỗi trong Visual Studio
- 23. Trình gỡ lỗi Visual Studio 2010 bỏ qua
- 24. Visual Studio: chỉnh sửa xaml trong khi gỡ lỗi (không ngừng gỡ lỗi)
- 25. Làm thế nào để gỡ lỗi mã CUDA bằng cách sử dụng Visual Studio 2008?
- 26. Cách dừng dịch vụ Windows theo chương trình
- 27. Làm cách nào để gỡ lỗi dịch vụ WCF?
- 28. Cách tốt nhất cho dịch vụ .Net Windows để báo cáo lỗi cho người dùng
- 29. Vô hiệu hóa trình biên dịch nền Visual Basic trong Visual Studio 2008
- 30. Xem mảng trong trình gỡ lỗi Visual Studio?
Nhập điểm cuối cùng - Tôi tin rằng bạn cũng có thể kiểm tra 'Environment.UserInteractive' cho mục này. –