Windows Hizmetleri yeniden başlatıldıktan sonra otomatik olarak başlamıyor mu?


10

.NET ile yazılmış bazı Windows hizmetlerimiz var. Servis mmc içinde manuel olarak iyi çalışırlar, ancak Otomatik olarak ayarlanmasına rağmen, makineyi açarken (veya yeniden başlatırken) asla başlamazlar.

Güncelleme Olay günlüğünde, "xyz başladı" yerine, diğer tüm hizmetlerin başlamasıyla birlikte, yalnızca "xyz hizmeti durdu durumuna girdi" ifadesini görüyorum. ve "slsvc hizmetinden bir işlem yanıtı beklenirken zaman aşımına (30000 milisaniye) ulaşıldı" yazan ayrı bir hata.

Onları el ile başlatırsam, olay günlüğüne beklendiği gibi normal bir girdi alıyorum ve her şey yolunda - yeniden başlatmayı zorlayan bir sonraki Windows Update düzeltme eki ve tüm hizmetler yeniden kapanana kadar.

Herhangi bir fikir? Belirgin bir fark olmadan onları Gecikmeli Başlatma olarak ayarlamayı denedim.


Bir zamanlar bazı zamanlanmış görevlerle çok benzer bir sorun yaşadım, sonunda sonunda görevin oluşturulduktan sonra çalıştığı kullanıcı adını değiştirerek yeniden oluşturabileceğimi keşfettim. Görevleri silerek ve yeniden oluşturarak sorunu kolayca çözebileceğimi buldum. Bununla kesinlikle benzer bir yaklaşıma değer - hizmeti kaldırmayı ve yeniden oluşturmayı deneyin. Bunu nasıl yapacağınızdan emin değilseniz bu yardımcı olabilir. Bilginize, zamanlanmış görevler sorunu artık yaşanmıyor, sanırım bir noktada bazı güncellemeler düzeltildi.
DaveRandom

Başka bir hizmete (henüz başlamamış) bağımlı oldukları için başlayamamalarını merak ediyorum. Sistem günlüğünde bir hizmet başlatma hatası görebiliyor musunuz?
newmanth

@DaveRandom yeniden yükleme aslında her yeni sürüm dağıttığımızda gerçekleşir, bu nedenle kaldırmanın / eklemenin sorunu ne yazık ki çözdüğü görünmüyor
James Crowley

@ yeni soru bazı yeni detaylarla güncellendi - çıkıyor ki olay günlüğü girişleri vardı
James Crowley

Rob'un cevabına yaptığınız yorumda .NET'in tek bağımlılık olduğunu fark ettim. Geliştiricilerin hizmetin geliştirilmesinde üçüncü taraf API'ları kullanıp kullanmadığını biliyor musunuz? Öyleyse, engellenen bazı lisanslama mekanizmaları olabilir mi?
newmanth

Yanıtlar:


3

Bunun için bir düzeltme var. Bkz. Http://support.microsoft.com/kb/922918

Mesele şu ki, bir hizmet ldap veya başka bir uzaktan erişim gerektirebilir ve bu nedenle gecikmeler yaşıyor. Bu özellikle sunucu başlatılırken gerçekleşebilir. Gecikmeyi uzatarak hizmetin başlamasını sağlayabilirsiniz.

Elbette bu hizmetin başlamasının neden bu kadar uzun sürdüğünü gidermek daha iyi olur. Ortamınız geçersiz mi? Hizmetin başlaması geciktirilerek sorgulanan bir hizmette performans sorunlarınız mı var?


Hizmet başlangıcı nasıl spesifik olarak giderilebilir? Ayrıntılı günlük kaydını etkinleştirmenin bir yolu var mı?
Kenny Evitt

1

"Bazı Windows hizmetlerimiz var" dediğinde ne demek istiyorsun? Bana kurum içinde birileri tarafından dahili olarak yaratıldıklarını mı düşündürüyor? Öyleyse, buradaki hataları ayıklamak için daha iyi bir konumdasınız - bu hizmetlerin Windows bileşenlerine ne gibi bağımlılıkları var ve programcılarınız bu hizmetlerin kullanılabilirliği için test etmeyi ve hizmetleriniz başladığında çevrimiçi olmalarını beklemeyi düşünüyorlar mı? ?

Bu hizmetleri yazılım lisanslama hizmetinin bir bağımlılığı olarak ayarlamayı düşündünüz mü ( slsvc budur).

dan http://support.microsoft.com/kb/193888

Yeni bir bağımlılık oluşturmak için, geciktirmek istediğiniz hizmeti temsil eden alt anahtarı seçin, Düzenle'yi ve ardından Değer Ekle'yi tıklatın. REG_MULTI_SZ veri türüyle yeni bir değer adı "DependOnService" (tırnak işaretleri olmadan) oluşturun ve Tamam'ı tıklatın. Veri iletişim kutusu göründüğünde, bu hizmetten önce başlatmak istediğiniz hizmetlerin adını veya adlarını her satır için bir girişle yazın ve Tamam'ı tıklatın.

Veri iletişim kutusuna gireceğiniz hizmetin adı, Hizmetler anahtarının altındaki kayıt defterinde göründüğü şekliyle hizmetin tam adıdır.

Bilgisayar başlatıldığında, bağımlı hizmeti başlatmadan önce bu değerde listelenen hizmet veya hizmetlerin başlatıldığını doğrulamak için bu girdiyi kullanır.


Teşekkürler Rob - onlar iç - ama tek bağımlılık bir hizmet olarak çalıştığına inanmıyorum .NET framework. Başlangıçta başka bir şey gerektirmez ...
James Crowley

0

Şunu deneyin:

Ortamınıza uygun bir tetikleyici olayı tanımlamak için aşağıdaki komutu çalıştırın. Bu örnekte komut, ana bilgisayara bir IP adresi verilip verilmeyeceğini belirler ve hizmeti başlatır veya durdurur.

sc triggerinfo w32time başlatma / networkon durdurma / networkoff

burada w32Time hizmet adınızdır

veya bunu dene

https://support.microsoft.com/en-us/kb/922918

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.