Aracılığıyla paylaş


WER kullanma

Windows Vista ile başlayarak, Windows, uygulamanızda değişiklik gerektirmeden varsayılan olarak kilitlenme, yanıt vermeme ve çekirdek hatası raporlaması sağlar. Gerekirse raporda minidump ve yığın dökümü bilgileri bulunacaktır. Uygulamalar bunun yerine uygulamaya özgü sorun raporlarını Microsoft'a göndermek için WER API'sini kullanır.

Windows işlenmeyen özel durumları otomatik olarak bildirdiğinden, uygulama önemli özel durumları işlememelidir. Hataya neden olan veya yanıt vermeyen işlem etkileşimliyse WER, kullanıcıyı sorunla ilgili bilgilendiren bir kullanıcı arabirimi görüntüler. Kullanıcı uygulamayla etkileşim kurmaya çalışırken beş saniye boyunca Windows iletilerine yanıt vermemesi durumunda bir uygulamanın yanıt vermediği kabul edilir.

Kilitlenmeler, yanıt vermeme ve çekirdek hataları için Windows Hata Raporlama süreci

Aşağıda bir uygulamanın kilitlenmesi, yanıt vermemesi veya çekirdek hatası için oluşan adımlar gösterilmektedir.

  1. Sorun olayı meydana gelir.
  2. İşletim sistemi WER'yi çağırır.
  3. WER verileri toplar, bir rapor oluşturur ve kullanıcıdan onay ister (gerekirse).
  4. WER, kullanıcı onay verirse raporu Microsoft'a (Watson Server) gönderir.
  5. Watson sunucusu ek veri isterse, WER verileri toplar ve kullanıcıdan onay ister (gerekirse).
  6. Uygulama kurtarma ve yeniden başlatma için kaydolduysa, kullanıcı onay verirse, veriler sıkıştırılır ve Microsoft'a gönderilirken WER kayıtlı geri çağırma işlevlerini yürütür.
  7. Soruna microsoft tarafından bir yanıt sağlanıyorsa, kullanıcıya bildirilir.

Uygulamalar, Microsoft'a gönderilen raporun içeriğini özelleştirmek için aşağıdaki işlevleri kullanabilir. Kayıt işlevleri WER'ye oluşturduğu hata raporuna belirli dosyaları ve bellek bloklarını eklemesini söyler.

Genel olay raporlama için Windows Hata Raporlama akışı

Aşağıdaki adımlar, uygulamaların önemli olmayan bir hata koşulu için nasıl hata raporu alabileceğini gösterir.

  1. Ölümcül olmayan problem olayı meydana gelir.
  2. Uygulama olayı tanır ve raporu oluşturmak için aşağıdaki işlev çağrıları dizisini kullanır.
    1. Raporu oluşturmak için WerReportCreate işlevini çağırın.
    2. Rapor parametrelerini ayarlamak için WerReportSetParameter işlevini çağırın.
    3. Rapora dosya eklemek için WerReportAddFile işlevini çağırın.
    4. Rapora minidump eklemek için WerReportAddDump işlevini çağırın (gerekirse).
    5. Raporu göndermek için WerReportSubmit işlevini çağırın.
    6. Kaynakları boşaltmak için werReportCloseHandle çağırın.
  3. 2. adımda işlevleri çağırırken kullanılan belirli seçeneklere bağlı olarak WER hata bildirimini tamamlar. WER, raporlamanın kullanıcı tarafından belirlenen ilkelere uygun olarak yapılmasını sağlar. Örneğin WER raporu Microsoft'a gönderir, raporu kuyruğa alır ve kullanıcıya uygun kullanıcı arabirimlerini gösterir.

Bir uygulamayı Windows Hata Raporlama'dan dışlama

Uygulamanızı Windows hata bildiriminin dışında tutmak için WerAddExcludedApplicationişlevinikullanın. Uygulamanızın hata raporlamasını geri yüklemek için WerRemoveExcludedApplicationişlevinikullanın.

Verileri otomatik olarak kurtarma ve hatalı bir uygulamayı yeniden başlatma

Uygulama, işlenmeyen bir özel durum nedeniyle uygulamadan çıkmadan önce veya uygulama yanıt vermeyi durdurduğunda verileri ve durum bilgilerini kaydetmek için Uygulama Kurtarma ve Yeniden Başlatma'yı kullanabilir. İstenirse uygulama da yeniden başlatılır. Ayrıntılar için bkz. uygulama kurtarma ve yeniden başlatma .

Eski API

Bir uygulama, ReportFault işlevini çağırarak hata bildirebilir. Ancak, işletim sisteminin varsayılan hata raporlama davranışının karşılayamayacağı özel bir gereksiniminiz olmadığı sürece ReportFault işlevini kullanmamalısınız.

Hata bildirimi etkinleştirilirse, sistem kullanıcıya uygulamanın bir sorunla karşılaştığını ve kapanacağını belirten bir iletişim kutusu görüntüler. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug anahtarında yapılandırılmış bir hata ayıklayıcısı varsa, kullanıcıya hata ayıklayıcıyı başlatma seçeneği verilir. Kullanıcıya Microsoft'a rapor gönderme seçeneği de verilir. Kullanıcı raporu gönderirse, sistem rapor için kullanıcıya teşekkür eden ve daha fazla bilgi için bir bağlantı sağlayan başka bir iletişim kutusu görüntüler.

Hata raporlama sistemi aşağıdaki işlem modlarını destekler.

İşlem modu Açıklama
Paylaşılan bellek raporlama Uygulamanın güvenlik bağlamı oturum açmış kullanıcının güvenlik bağlamı ile aynıysa, hata raporlama sistemi iletişim için paylaşılan bellek bloğu kullanır. Bu mod bildirim raporlama moduyla kullanılamaz.
Manifesto raporu Uygulamanın güvenlik bağlamı oturum açmış kullanıcının güvenlik bağlamı ile aynı değilse, hata raporlama sistemi iletişim için bir dosya kullanır. Bu mod, yanıt vermeyen uygulamaları ve çekirdek hatalarını raporlamak için de kullanılır. Bu mod paylaşılan bellek raporlama moduyla kullanılamaz.
İnternet raporlama Hata raporlama sistemi tüm verileri İnternet üzerinden Microsoft'a gönderir. Bu, varsayılan işlem modudur. Şirket raporlama moduyla kullanılamaz. Bu mod, yönetici tarafından belirtilen bir kurumsal karşıya yükleme yolu olmadığında kullanılır.
Kurumsal raporlama Hata raporlama sistemi, tüm verileri doğrudan Microsoft'a yüklemek yerine bir dosya paylaşımına gönderir. Bu, kurumsal BT yöneticilerinin Microsoft'a gönderilmeden önce verileri gözden geçirmesine olanak tanır. Bu mod, yönetici tarafından belirtilen bir kurumsal karşıya yükleme yolu olduğunda kullanılır. İnternet raporlama moduyla kullanılamaz.
Başsız raporlama Hata raporlama sistemi kullanıcıya hiçbir iletişim kutusu görüntülemez. Bu, kurumsal BT yöneticilerinin çalışanlarından her zaman hata raporları toplamasına olanak tanır. Bu mod, raporlama yönetici tarafından etkinleştirildiğinde kullanılır, ancak bildirim devre dışı bırakılır. Yalnızca şirket raporlama moduyla kullanılabilir.

Uygulamanızı hata raporlamanın dışında tutmak için AddERExcludedApplication işlevini kullanın.