2009-01-14 17 views
5

Kurulum penceresini kullanarak bir windows servisi kurdum ve "Autostart" a ayarladım. Benim sorunum, bazı sunucular yeniden başlatıldığında "Microsoft SQL hizmeti" nin başlatılmasından önce başlamaya çalıştığıdır. Bunu, sistem yeniden başlatıldığında olay günlüğüne bakarak görebiliyorum. Sql sunucu hizmetini başlattıktan sonra hizmetimi "otomatik başlat" yapmanın en iyi yolu nedir?Bir windows hizmetinin başlatılma sırasını kontrol etme

"SQL sunucu aracısı" başlatıldığında, Windows hizmetini başlattığınızda başlatılacak bir SQL iş kümesi oluşturma düşüncesiyle çalışıyorum. Ancak umarım, otomatik servislerin başlatıldığı siparişi kontrol etmenin kolay ve etkili bir yolu vardır.

cevap

5

Her Windows Hizmet bağımlı olduğu diğer hizmetlerin bir listesi vardır. Bu, bağımlılıkların başlama girişiminde bulunmaya başlamadan önce bekleyeceği anlamına gelir ve sizin, sizin başladığınız zaman otomatik olarak başlatılmamışsa sizin için başlatacaktır.

NET'te Windows Service oluşturuyorsanız, bir blog yazısı yararlı olabileceğini var burada:

How to: Code Service Dependencies

Aksi hizmet bağımlılıklarını eklemek için bir yol ayrıntıları burada Microsoft kb giriş var defteri aracılığıyla: Eğer bir toplu komut dosyası ile bunu yapmak istiyorsanız

How to delay loading of specific services

+0

Teşekkür ederiz. Bu harika çalıştı. Yükleyici sınıfını ekledim - özelliklerine gittim ve "MSSQLSERVER" hizmetine bağımlılık ekledim. İşe benziyor. Hizmet adının SQL Server 2005, 2008 için aynı kalmaya devam edeceğini merak edin. – Bijimon

+0

Kullanıcı merkezi bir yük devretme kümesinde veya başka bir kutuda SQL Server'ı çalıştırmak istiyorsa ne olur? – onupdatecascade

+0

@matthamilton üst bağlantı bozuk –

2

Servisler arasında bağımlılıklar ayarlayabilirsiniz.

See here:

2

sonra şu

yardımcı olacaktır

REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\%ServiceKey%" /v "DependOnService" /t REG_MULTI_SZ /d "Service Number 01\0Service Number 02"

Bu reg.exesee here

2

bağımlılıklar cazip ama SQL Server durumunda sisteminizin uzun vadeli tasarımı için zararlı olabilir kullanır. Uygulamanızın başarılı olup olmadığını düşünün ve müşterileriniz başka bir kutudaki ayrı bir SQL sunucusuna veya bir yük devretme kümesine taşınmak isterler.

Daha iyi bir tasarım, hizmetinizin başlangıcında bazı yeniden deneme/zaman aşımı mantığı koymak olabilir, böylece SQL Server'la (belki başka bir makinede bile) iletişime geçmeye çalışın, bekleyin, deneyin ve daha sonra da sorunsuz bir şekilde başarısız olun.

İlgili konular