2015-10-20 20 views
7

Tôi đã viết một dịch vụ cửa sổ nó hoạt động và BẮT ĐẦU tốt trong hầu hết các hệ điều hành. Tôi đã thu hẹp thực tế là Windows 10 nâng cấp từ cửa sổ 8 gây ra một vấn đề mà dịch vụ không bắt đầu khởi động lại khi dịch vụ được đặt thành tự động. Tôi thấy rằng bắt đầu chậm trễ không hoạt động ok. Tự hỏi nếu có ai biết về sắc thái giữa một cài đặt đầy đủ từ đầu và nâng cấp có thể chỉ đến việc thu hẹp trong vấn đề khó nắm bắt này.Dịch vụ Windows không bắt đầu khi nâng cấp Windows 10

Khi không hoạt động, không có nhật ký hoặc sự kiện nào được tạo. Nó dường như không cố gắng và thất bại - chỉ cần không chạy (bắt đầu).


Tôi vừa xem qua cài đặt ở nơi hoạt động tốt và hệ điều hành được nâng cấp từ Win 8. Có vẻ như một số phụ thuộc khác. Dịch vụ này được viết chống lại .Net Framework 4.0 x86. Dịch vụ bắt đầu thủ công tốt. khởi động tự động (khi khởi động) không hoạt động. Tôi đã định nói nó thất bại - nhưng đó không phải là trường hợp vì nó dường như không cố gắng.

+0

Nó có vẻ như tiền đề của bạn là _ "Nếu bạn nâng cấp lên Windows 8 cho Windows 10 dịch vụ tự cài đặt của bạn được thiết lập để 'tự động' không bắt đầu khi khởi động lại máy" _, tất nhiên là không đúng. Nếu có, đó sẽ là một vấn đề lớn mà những người khác sẽ gặp phải trước bạn. Tôi khó có thể tin rằng không có tin nhắn đăng nhập sự kiện duy nhất được tạo ra. Bạn có chắc chắn về điều đó không? – CodeCaster

+0

Không có sự kiện nào được tạo. – Jeff

+0

Tôi có chính xác cùng một vấn đề, chưa được quản lý để làm việc trong trường hợp nó tái tạo. Nhật ký cửa sổ hiển thị lỗi hết thời gian chờ nhưng không có nhật ký log4net nào được tạo. – msshapira

Trả lời

1

Chúng tôi gặp sự cố tương tự khi một trong các dịch vụ của chúng tôi (.net) không tự động khởi động trong một số trường hợp sau khi nâng cấp lên Windows 10. Ngoài ra, trong một số trường hợp, sự cố đã được giải quyết sau khi cập nhật lên Windows 10.0.10240 ; không phải trong mọi trường hợp. Không có lỗi trong bản ghi sự kiện.

Cập nhật: bắt đầu bị trì hoãn cũng có vẻ hoạt động trong một số trường hợp.

3

Chúng tôi gặp sự cố tương tự với cửa sổ 10 nơi hầu hết các dịch vụ dựa trên Net sẽ không thành công khi khởi động nhưng có thể bắt đầu sau đó theo cách thủ công. Đối với một số lý do, các dịch vụ được viết bằng .NET mất nhiều thời gian hơn để khởi động trong Windows 10. Theo mặc định, nếu một dịch vụ mất hơn 30 giây để bắt đầu mà không trả lời, dịch vụ sẽ bị Windows chấm dứt. Đây là số không phải bắt đầu bị trì hoãn, nhưng tăng thời gian cho các dịch vụ để phản hồi sau khi khởi động.

Tôi đã có thể thay đổi hành vi đó thành 60 giây trong sổ đăng ký. Tới:

HKLM \ SYSTEM \ CurrentControlSet \ Control \

Nếu nó không tồn tại, tạo một DWORD (32-bit) chính gọi là "ServicesPipeTimeout" (trừ dấu ngoặc kép). Đặt giá trị của nó thành 60000 (theo số thập phân). Điều này tương quan với 60 giây tính bằng mili giây.

Tôi thậm chí đã tạo ra một regfile để tự động này:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control] "ServicesPipeTimeout" = dword: 0000ea60

Chỉ cần dán vào notepad và lưu dưới dạng tệp .reg.

Điều này đã khắc phục sự cố cho chúng tôi trên nhiều máy. Hãy cho tôi biết nếu điều này sẽ giúp. Thật không may, tôi vẫn không biết tại sao dịch vụ .NET mất quá nhiều thời gian để bắt đầu rằng chúng bị chấm dứt. Tuy nhiên, tôi cảm thấy đây là lỗi của Microsoft và không nhất thiết là bất kỳ điều gì mà người dùng của chúng tôi đang làm sai ...

+1

thay vì tự thay đổi đăng ký, nếu sử dụng khởi động chậm không hiệu quả với bạn, bạn có thể đi đến các thuộc tính của dịch vụ và thử khôi phục dịch vụ. trong tab khôi phục, bạn có các tùy chọn về việc cần làm khi dịch vụ không khởi động được. bạn có thể trong thực tế cố gắng khởi động lại nó với một sự chậm trễ ("khởi động lại dịch vụ sau khi X phút"). –

0

Chúng tôi cũng gặp sự cố tương tự với dịch vụ cửa sổ C++ mà chúng tôi đã tạo. Tự động khởi động hoạt động tốt cho hầu hết mọi người.Tuy nhiên, hiện tại chúng tôi có 5 trường hợp dịch vụ của khách hàng hoạt động tốt và giờ đây dịch vụ sẽ không tự động khởi động.

Điều duy nhất dường như hoạt động là thiết lập để bắt đầu trì hoãn, nhưng đây không phải là một lựa chọn tốt vì chúng tôi muốn dịch vụ được bắt đầu ngay lập tức. Chúng tôi cũng đã thử thêm sự phụ thuộc dịch vụ của NetLogon - mà không hoạt động.

Cũng lưu ý rằng điều này đã làm việc tốt cho khách hàng và tại một số điểm (cửa sổ cập nhật có thể?) Nó chỉ dừng lại tự động bắt đầu.

Khách hàng cũng có thể đi vào dịch vụ và bắt đầu dịch vụ theo cách thủ công và dịch vụ hoạt động. Tôi sẽ theo chủ đề này và hy vọng có một giải pháp tốt hơn là bắt đầu trì hoãn.

0

gì cố định nó cho chúng ta là, nếu bạn có thể thay đổi các dịch vụ thực thi tự hỏi:

Trong sự thay đổi tập tin dự án thích cờ 32-bit để sai, sau đó cài đặt dịch vụ.

Kiểm tra dịch vụ của bạn với CorFlags.exe. Các 32BITREQ và 32BITPREF nên 0.

Version : v4.0.30319 
CLR Header: 2.5 
PE  : PE32 
CorFlags : 0x1 
ILONLY : 1 
32BITREQ : 0 
32BITPREF : 0 
Signed : 0 
Các vấn đề liên quan