Tôi có dịch vụ Windows được tùy chỉnh bằng văn bản mà tôi chạy trên một số máy ảo Hyper-V. Các máy ảo được khởi động lại một vài lần một giờ như một phần của một số thử nghiệm tự động đang chạy. Dịch vụ được đặt thành tự động bắt đầu và hầu như mọi lúc, nó bắt đầu hoạt động tốt."Đã hết thời gian chờ trong khi chờ dịch vụ kết nối" sau khi khởi động lại
Tuy nhiên, có thể 5% thời gian, không có mẫu mà tôi có thể nhận ra, dịch vụ không khởi động được. Khi không thành công, tôi gặp lỗi trong Trình xem sự kiện cho biết
Đã hết thời gian chờ (30000 mili giây) trong khi chờ dịch vụ Tên dịch vụ của tôi kết nối.
Khi điều này xảy ra, tôi có thể khởi động dịch vụ theo cách thủ công hoặc khởi động lại và dịch vụ sẽ bắt đầu hoạt động tốt.
Điều tôi không thể hiểu được là thời gian chờ 30 giây dường như không xuất hiện trong mã của tôi. Dòng đầu tiên của phương thức OnStart() của lớp dịch vụ của tôi ghi nhật ký "Starting ..." vào nhật ký log4net của nó. Khi dịch vụ không khởi động được, tôi thậm chí không nhận được bất cứ thứ gì đã đăng nhập, điều này cho tôi biết rằng log4net không thể đăng nhập vì bất kỳ lý do gì hoặc thời gian chờ xuất hiện trước khi OnStart() của tôi được gọi.
Dịch vụ chạy trên nhiều hệ điều hành, từ XP tới Win7 và 2008R2, và tôi biết rằng việc thiết lập dịch vụ để bắt đầu trễ có thể giải quyết vấn đề này cho Vista và sau đó.
Tôi đã không thể gỡ lỗi từ xa điều này vì thực tế là nó xảy ra liên tục và trong khi khởi động hệ thống, và tôi đang thua lỗ để tìm cách tiếp tục tìm hiểu những gì đang xảy ra. Bất kỳ ý tưởng?
Dịch vụ của bạn có phụ thuộc vào bất kỳ dịch vụ nào khác hoặc bất kỳ dịch vụ nào phụ thuộc vào dịch vụ của bạn để bắt đầu không? –
Không, nó hoàn toàn độc lập. –
Bạn đang sử dụng loại ứng dụng nào cho log4net? –