Aracılığıyla paylaş


Cloud Services sanal makinesinde uygulama havuzu kilitlenme sorunlarını giderme

Bu makalede, Microsoft Azure Cloud Services'de bir sanal makinede (VM) uygulama havuzu kilitlenmelerinin nasıl çözüleceğini açıklar. Uygulama havuzu kilitlenirse uygulamanız yanıt vermeyi durdurur.

1. Adım: Uygulama havuzlarına hizmet veren işlemlerdeki hataları denetleme

Olay Görüntüleyicisi konsol ağacında Windows Günlükleri>Sistemi'ni seçerseniz aşağıdaki olaylardan birini görebilirsiniz:

'%1' uygulama havuzuna hizmet veren bir işlem, Windows İşlem Etkinleştirme Hizmeti'nde önemli bir iletişim hatasıyla karşılandı. İşlem kimliği : '%2'. Veri alanı hata numarasını içerir.

'%1' uygulama havuzuna hizmet veren bir işlem beklenmedik şekilde sonlandırıldı. İşlem kimliği : '%2'. İşlem çıkış kodu: '%3'.

Bu olaylar bir uygulama havuzu kilitlenmesine açıkça işaret eder. Uygulama içinde bir sorun oluştuğundan uygulama havuzunun sonlandırılması gerekiyordu. Uygulama havuzu sonlandırıldıktan sonra ilgili w3wp.exe işlemi de sonlandırılır. w3wp.exe işlemine kaydettiğiniz önbellek tabanlı veya oturum tabanlı bilgiler silinir.

İdeal olarak, bir uygulama havuzu kilitlendiğinde, gelen istekleri yerine getirmek için otomatik olarak yeni bir w3wp.exe işlemi oluşturulur. Ancak, uygulama havuzu beş dakika içinde beşten fazla kez kilitlenirse, uygulama havuzu durdurulmuş duruma geçer. Uygulama havuzunu çalışır duruma getirmek için el ile yeniden başlatmanız gerekir. Benzer bir durum oluşursa, Olay Görüntüleyicisi'daki sistem günlüklerinin altında aşağıdaki olayı gözlemlersiniz:

'%1' uygulama havuzu, uygulama havuzuna hizmet veren işlemlerdeki bir dizi hata nedeniyle otomatik olarak devre dışı bırakılıyor.

Bu ayarları bu uygulama havuzunun Gelişmiş Ayarlar iletişim kutusunda, Hızlı Yük Devretme Koruması bölümünün altında yapılandırabilirsiniz. Enabled özelliğinin varsayılan değeri True'dır. Enabled özelliği True ise, hata sınırına belirli bir süre içinde ulaşıldıktan sonra uygulama havuzu durur. Hata sınırı En Fazla Hata özelliğiyle temsil edilir. Bu özelliğin varsayılan değeri 5'tir. Zaman aralığı Hata Aralığı (dakika) özelliğiyle temsil edilir. Bu özellik de varsayılan olarak 5 olarak ayarlanır.

Uygulama havuzu Gelişmiş Ayarlar iletişim kutusunun Rapid-Fail Koruma bölümünün ekran görüntüsü.

3. Adım: w3wp.exe işlem dökümü dosyalarını yakalama

Uygulamanın kilitlendiğini belirledikten sonra tam olarak neden kilitlendiğini belirleyin. sonlandırmadan hemen önce w3wp.exe işleminin döküm dosyasını yakalamanız gerekir. Bu dosyayı yakalamanın birçok yolu vardır. Kilitlenme bilgi dökümü dosyasını yakalamak için Windows Hata Bildirimi (WER), ProcDump ve DebugDiag ayarlayabilirsiniz. Bu makalede yalnızca veri yakalamaya yönelik DebugDiag yöntemi açıklanır.

DebugDiag'ı indirip yüklemek için şu adımları izleyin:

  1. Hata Ayıklama Tanılama Aracı v2 sitesine gidin ve İndir'i seçin.

  2. İstediğiniz indirmeyi seçin alanında, bilgisayar mimariniz için uygun Microsoft Windows Installer (MSI) dosya sürümünü seçin ve ardından İleri'yi seçin.

  3. İndirilen dosyayı açın. Kurulum sihirbazında varsayılan seçenekleri kabul edin ve uygulamayı yüklemeyi tamamlayın.

DebugDiag 2 Koleksiyonu uygulamasını ayarlamak için şu adımları izleyin:

  1. Başlat'ı seçin, DebugDiag 2 Koleksiyonu yazın ve sonuçlar listesinden yeni yüklenen uygulamayı açın.

  2. Kural Türü Seç iletişim kutusunda Kilitlenme seçeneğini ve ardından İleri'yi seçin.

  3. Hedef Türü Seç iletişim kutusunda Belirli bir IIS web uygulaması havuzu seçeneğini belirleyin ve ardından İleri'yi seçin.

  4. Hedef Seç iletişim kutusunda, kilitlenen belirli uygulama havuzunu seçin ve ardından İleri'yi seçin. Internet Information Services (IIS) yönetiminin yüklü olmadığını ve uygulama havuzlarının listelenmeyeceğini belirten bir pencere açılırsa Tamam'ı seçin ve uygulama adını el ile girin.

  5. Gelişmiş Yapılandırma (İsteğe Bağlı) iletişim kutusunda Kesme NoktalarıKesme Noktası> Ekle'yi seçin.

  6. Yeni bir kesme noktası oluşturmak için aşağıdaki seçimleri yapın ve ardından Tamam'ı seçin.

    Alan Açıklama Değer
    Uzaklık İfadesi Yakalama işlemi Ntdll!ZwTerminateProcess
    Eylem Türü Yakalanan döküm türü Tam kullanıcı kimliği
    Eylem Sınırı Yakalanacak döküm sayısı 10
  7. Kesme Noktalarını Yapılandır iletişim kutusunda, yeni Kesme Noktası İfadesi öğesinin gösterildiğini doğrulayın. Gelişmiş Yapılandırma (İsteğe Bağlı) iletişim kutusuna dönmek için Kaydet & Kapat'ı seçin ve ardından kesme noktasını etkinleştirmek için İleri'yi seçin.

  8. Döküm Konumu ve Kural Adı Seç (İsteğe bağlı) iletişim kutusunda, bir Kural Adı girin ve kullanıcı kimliği konumunu yeterli boş disk alanı olan bir sürücü ve dizin olarak değiştirin(gerekirse). (Her döküm dosyasının boyutu bellekteki w3wp.exe işlemi tarafından kullanılanlarla eşleşecektir.)

  9. İleri'yi seçin.

  10. Kuralı etkinleştirmek için Son'u seçin.

Artık kilitlenme kuralı etkin durumda ve Userdump Sayısı0'dır. Sorun oluştuğunda döküm sayısı hemen artar ve buna karşılık gelen bir döküm dosyası oluşturulur.

Not

Uygulama havuzunun normal bir geri dönüşümü de döküm dosyasını tetikleyebilir. Bunun nedeni, geri dönüşüme geçtiğinde uygulama havuzunun karşılık gelen w3wp.exe işlem kimliğinin (PID) değişmesidir. Bu işlem bir döküm dosyası oluşturur. Bu dosya hatalı bir pozitif. Bu nedenle, uygulama havuzu kilitlenmesini analiz etmek size yardımcı olmaz. Userdump sayısındaki artışları her gördüğünüzde, beklenen kilitlenme olaylarının oluşup oluşmadığını görmek için olay günlüklerini denetleyin. Olaylar beklendiği gibiyse, yakalanan döküm doğrudur.

4. Adım: w3wp.exe işlem dökümü dosyalarını analiz etme

Döküm dosyası yakalandıktan sonraDebugDiag 2 ÇözümlemesiniBaşlat'ı> açabilirsiniz. Bu uygulama yakalanan kilitlenme dökümü dosyasını analiz etmenizi sağlar.

Simge yolunun doğru ayarlandığından emin olun. Bu iki bölümden oluşur. DebugDiag 2 Analizi'ndeAyarlar'ı (dişli simgesi) seçin. Çözümleme için kullanılacak sembol arama yolları'nın altında _NT_SYMBOL_PATH ve Microsoft Genel Sembol Sunucuları'nın seçili olduğunu doğrulayın.

DebugDiag 2 Koleksiyonunu yeniden açın ve Araçlar>Seçenekler ve Ayarlar'ı seçin. Ardından, Seçenekler & Ayarları iletişim kutusunda Hata Ayıklama için Simge Arama Yolu (kilitlenme kuralları) kutusunun srv*c:\symcache*https://msdl.microsoft.com/download/symbols olarak ayarlandığından emin olun. Bu yol DebugDiag'ın microsoft ortak sembol sunucusundan gerektiği gibi simgeleri indirmesine ve ardından bunları c:\symcache dizininde depolamasına neden olur.

Simge yolu ayarlarınızı değiştirdikten veya doğruladıktan sonra yakalanan döküm dosyalarını analiz edebilirsiniz. Çözümlemeyi başlatmak için DebugDiag 2 Çözümlemesi'ne dönün ve döküm dosyasının adına çift tıklayın. Rapor oluşturulduktan sonra tarayıcıda açabilir ve kesme noktası ifadesini tetikleyen iş parçacığının çağrı yığınını anlayabilirsiniz. Çağrı yığınını alttan üste doğru okuyun ve ardından uygulama havuzunun kilitlenmesini tetikleyen yöntemi veya bileşeni belirleyin. Kesin bir özel durum çağrı yığını bulamazsanız, aynı döküm dosyası analizinde .NET çağrı yığınına daha fazla bakın.

5. Adım: w3wp.exe veya WaWorkerHost.exe işleminde işlenmeyen özel durumları denetleme

w3wp.exe veya WaWorkerHost.exe işleminin durmasına neden olan işlenmemiş özel durumları da denetlemek için bkz. İşlenmeyen özel durumlar ASP'ye neden oluyor. .NET FRAMEWORK beklenmedik bir şekilde çıkmak için NET tabanlı uygulamalar.

Üçüncü taraf bilgileri hakkında yasal uyarı

Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.