Aracılığıyla paylaş


Windows Hizmet Uygulamalarında Hata Nasıl Ayıklanır

Bir hizmet Visual Studio'nun içinden değil, Hizmet Denetim Yöneticisi'nin bağlamında çalıştırılması gerektiği için, bir hizmette hata ayıklamak diğer Visual Studio uygulama türlerinde hata ayıklamak kadar basit değildir. Bir hizmette hata ayıklamak için hizmeti başlatmanız ve sonra içinde çalıştığı işleme bir hata ayıklayıcı eklemeniz gerekir. Sonra, Visual Studio standart hata ayıklama işlevselliğini kullanarak uygulamanızın hatalarını ayıklayabilirsiniz.

Uyarı notuUyarı

İşlemin ne olduğunu bilmedikçe, işlemi öldürmenin ve işleme ekleme yapmanın sonuçlarını anlamadıkça işleme bir ek yapmamanız gerekir. Örneğin, WinLogon işlemine eklerseniz ardından hata ayıklamayı durdurursanız, sistem WinLogon olmadan işleyemeyeceği için geçici olarak durdurulacaktır.

Hata ayıklayıcıyı yalnızca çalışan bir hizmete ekleyebilirsiniz. Ek işlemi hizmetinizin geçerli işleyişini keser; hizmetin işleyişini gerçekten durdurmaz veya duraklatmaz. Başka bir deyişle, hata ayıklamayı başlattığınızda hizmet çalışıyorsa, hata ayıklama sırasında teknik olarak hala Başlatılmış durumdadır ancak işlemesi askıya alınmıştır.

Hizmet işlemine iliştirme, tümü olmasa da birçok hizmet kodunun hatalarını ayıklamanızı sağlar; örneğin, hizmet zaten başlatılmış olduğundan, hizmeti yüklemek için kullanılan hizmetin OnStart yönteminde veya Main yönteminde bulunan kodun hatalarını bu yolla ayıklayamazsınız. Bunu çözmenin bir yolu, yalnızca hata ayıklama konusunda yardım sağlamak için bulunan hizmet uygulamanızda ikinci bir geçici hizmet oluşturmaktır. Her iki hizmeti de yükleyebilir, ardından hizmet işlemini yüklemek üzere bu "kukla" hizmetini başlatabilirsiniz. Geçici hizmet, işlemi başlattıktan sonra hizmet işlemini iliştirmek için Visual Studio'da Hata Ayıklama menüsünü kullanabilirsiniz.

İşleme iliştirdikten sonra, kesme noktaları belirleyebilir ve bunları kodunuzdaki hataları ayıklamak için kullanabilirsiniz. İşlemi eklemek için kullandığınız iletişim kutusundan çıktıktan sonra fiilen hata ayıklama moduna girersiniz. Hizmet Denetim Yöneticisi'ni hizmetinizi başlatmak, durdurmak, duraklatmak ve böylece ayarladığınız kesme noktalarının isabet etmesi için kullanabilirsiniz. Hatalar başarılı bir şekilde ayıklandıktan sonra bu kukla hizmetini daha sonra kaldırmak isteyeceksiniz.

Not

OnStart yönteminin hatalarını ayıklamak zor olabilir çünkü Windows Service Manager bir hizmet başlatmaya yönelik tüm girişimlere 30 saniyelik bir sınır uygular. Daha fazla bilgi için bkz. Sorun giderme: Windows Hizmetleri'nde Hata Ayıklama.

Bir hizmette hata ayıklamak için

  1. Hizmetinizi yükleyin. Daha fazla bilgi için bkz. Hizmetler Nasıl Yüklenir ve Kaldırılır.

  2. Hizmetinizi Hizmet Denetim Yöneticisi'nden, Sunucu Gezgini'nden veya koddan başlatın. Daha fazla bilgi için bkz. Hizmetler Nasıl Başlatılır.

  3. Visual Studio'da Hata Ayıklama menüsünden İşlemler'i seçin.

    İşlemler iletişim kutusu belirir.

  4. Sistem işlemlerini göster seçeneğini tıklatın.

  5. Kullanılabilir Süreçler bölümünde hizmetinizin işlemini tıklatın ve ardından Ekle'yi tıklatın.

    İpucuİpucu

    İşlem hizmetinizle ilgili çalıştırılabilir dosya olarak aynı ada sahip olacaktır.

    İşleme Ekle iletişim kutusu belirir.

  6. Uygun olan herhangi bir seçeneği seçin, ardından iletişim kutusunu kapatmak için Tamam seçeneğini tıklatın.

    Not

    Şu anda hata ayıklama modundasınız.

  7. Kodunuzda kullanmak istediğiniz tüm kesme noktalarını ayarlayın.

  8. Hizmet Denetim Yöneticisi'ne erişin ve kesme noktalarınıza isabet ettirmek için durdur, duraklat ve devam et komutlarını göndererek hizmetinizi yönlendirin. Hizmet Denetim Yöneticisi'ni çalıştırma hakkında daha fazla bilgi için bkz. Hizmetler Nasıl Başlatılır.

Ayrıca bkz.

Görevler

Hizmetler Nasıl Yüklenir ve Kaldırılır

Hizmetler Nasıl Başlatılır

Kavramlar

Windows Hizmet Uygulamalarına Giriş