Azure App Service IIS ASP.NET Core de ASP.NET Core sorunlarını giderme

Justin Kotalik tarafından

Bu makalede, bir uygulama Azure App Service veya IIS'ye dağıtıldığında karşılaşılan hataları tanılama hakkında genel uygulama başlatma hataları hakkında bilgi ve yönergeler ve sağlar:

Uygulama başlatma hataları
Yaygın başlangıç HTTP durum kodu senaryolarını açıklar.

Azure App Service'da sorun giderme
Sanal ağlara dağıtılan uygulamalar için sorun giderme Azure App Service.

IIS üzerinde sorun giderme
IIS'ye dağıtılan veya yerel olarak çalışan uygulamalar için sorun IIS Express öneriler sağlar. Bu kılavuz hem Windows Server hem de Windows dağıtımları için geçerlidir.

Paket önbelleklerini temizleme
Büyük yükseltmeler yaparken veya paket sürümlerini değiştirirken, tutarlı paketler bir uygulamayı bozacak olduğunda ne yapacaklarını açıklar.

Ek Kaynaklar
Ek sorun giderme konularını listeler.

Uygulama başlatma hataları

Bu Visual Studio hata ayıklama ASP.NET Core bir proje varsayılan IIS Express olarak barındırıyor. 502.5 - İşlem Hatası veya 500,30 - Yerel olarak hata ayıklama sırasında oluşan Başlatma Hatası, bu konudaki öneri kullanılarak tanılanabiliyor.

403.14 Yasak

Uygulama başlatılamaz. Aşağıdaki hata günlüğe kaydedilir:

The Web server is configured to not list the contents of this directory.

Hata genellikle aşağıdaki senaryolardan herhangi birini içeren barındırma sistemi üzerinde bozuk bir dağıtımdan kaynaklandı:

  • Uygulama, barındırma sistemi üzerinde yanlış klasöre dağıtıldı.
  • Dağıtım işlemi uygulamanın tüm dosyalarını ve klasörlerini barındırma sistemi üzerinde dağıtım klasörüne taşıyamadı.
  • web.config dosyası dağıtımda eksik veya dosya web.config yanlış biçimlendirilmiş.

Aşağıdaki adımları gerçekleştirin:

  1. Barındırma sistemi üzerinde dağıtım klasöründen tüm dosya ve klasörleri silin.
  2. Visual Studio, PowerShell veya el ile dağıtım gibi normal dağıtım yönteminizi kullanarak uygulamanın publish klasörünün içeriğini barındırma sistemine yeniden dağıtma:
    • Dağıtımda web.config dosyanın mevcut olduğunu ve içeriğinin doğru olduğunu onaylayın.
    • Uygulamanın Azure App Service, uygulamanın klasöre dağıtıldığından D:\home\site\wwwroot onaylayın.
    • Uygulama IIS tarafından barındırıldığında, uygulamanın IIS Yöneticisi'nin Temel yolunda gösterilen IIS Fiziksel yoluna dağıtıldığından Ayarlar.
  3. Barındırma sisteminde dağıtımı projenin yayımlama klasörünün içeriğiyle karşılaştırarak uygulamanın tüm dosya ve klasörlerinin dağıtıldığından onaylayın.

Yayımlanmış bir uygulamanın düzeni hakkında daha fazla bilgi ASP.NET Core bkz. ASP.NET Core dizin yapısı . Yeni dosya hakkında daha fazlaweb.config bkz. ASP.NET Core Modülü .

500 İç Sunucu Hatası

Uygulama başlatılır, ancak bir hata sunucunun isteği yerine getirmesini önler.

Bu hata, başlatma sırasında veya yanıt oluşturulurken uygulamanın kodunda oluşur. Yanıt hiçbir içerik içerenin veya yanıt tarayıcıda 500 İç Sunucu Hatası olarak görünebilir. Uygulama Olay Günlüğü genellikle uygulamanın normal şekilde başlat olduğunu belirtir. Sunucunun perspektifinden doğru. Uygulama başlatılasa da geçerli bir yanıt oluşturamayabilirsiniz. Sorunu gidermek için uygulamayı sunucuda bir komut isteminde çalıştırın veya ASP.NET Core Modül stdout günlüğünü etkinleştirin.

500.0 In-Process İşleyici Yükleme Hatası

Çalışan işlemi başarısız olur. Uygulama başlamaz.

Modül bileşenleri yüklenirken bilinmeyen ASP.NET Core oluştu. Aşağıdaki eylemlerden birini uygulayın:

500,30 In-Process Başlatma Hatası

Çalışan işlemi başarısız olur. Uygulama başlamaz.

ASP.NET Core Modülü işlem sırasında .NET Core CLR'sini başlatmaya çalışır, ancak başlatamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve Uygulama Modülü stdout günlüğü ASP.NET Core belirlenebilir.

Yaygın hata koşulları:

  • Uygulama, mevcut olmayan paylaşılan çerçevenin ASP.NET Core nedeniyle yanlış yapılandırılmış. Hedef makinede paylaşılan ASP.NET Core hangi sürümlerinin yüklü olduğunu kontrol edin.
  • Bu Azure Key Vault, veri erişim izni Key Vault. Doğru izinlerin verilmiş olduğundan emin olmak için Key Vault erişim ilkelerini denetleyin.

500.31 ANCM Yerel Bağımlılıkları Bulamadı

Çalışan işlemi başarısız olur. Uygulama başlamaz.

ASP.NET Core Modülü işlem sırasında .NET Core çalışma zamanının başlatılasa da başlatılamamaktadır. Bu başlatma hatasının en yaygın nedeni, Microsoft.NETCore.App veya Microsoft.AspNetCore.App çalışma zamanı yüklenmemiş olmasıdır. Uygulama 3.0'ASP.NET Core hedef sürüme dağıtılırsa ve bu sürüm makinede yoksa bu hata oluşur. Örnek bir hata iletisi şunlardır:

The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found.
  - The following frameworks were found:
      2.2.1 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview5-27626-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27713-13 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27714-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27723-08 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]

Hata iletisi, yüklü olan tüm .NET Core sürümlerini ve uygulama tarafından istenen sürümü listeler. Bu hatayı düzeltmek için:

  • Makineye uygun .NET Core sürümünü yükleyin.
  • Uygulamayı makinede mevcut olan bir .NET Core sürümünü hedefle olarak değiştirme.
  • Uygulamayı kendi içinde bir dağıtım olarak yayımlayın.

Geliştirme sırasında çalıştırıldığı zaman ASPNETCORE_ENVIRONMENT (ortam değişkeni olarak Development ayarlanır), belirli bir hata HTTP yanıtına yazılır. İşlem başlatma hatasının nedeni, Uygulama Olay Günlüğü'ne de bulunur.

500.32 ANCM Dll Yüklenemedi

Çalışan işlemi başarısız olur. Uygulama başlamaz.

Bu hatanın en yaygın nedeni, uygulamanın uyumsuz bir işlemci mimarisi için yayımlanır. Çalışan işlemi 32 bit uygulama olarak çalışıyorsa ve uygulama 64 bit hedefte yayımlanmışsa bu hata oluşur.

Bu hatayı düzeltmek için:

500.33 ANCM İstek İşleyicisi Yük Hatası

Çalışan işlemi başarısız olur. Uygulama başlamaz.

Uygulama çerçeveye Microsoft.AspNetCore.App başvurulmadı. Yalnızca çerçeveyi hedef Microsoft.AspNetCore.App alan uygulamalar, ASP.NET Core barındırabilirsiniz.

Bu hatayı düzeltmek için uygulamanın çerçeveyi hedefleyeni olduğunu Microsoft.AspNetCore.App onaylayın. Uygulama .runtimeconfig.json tarafından hedeflenen çerçeveyi doğrulamak için 'i kontrol edin.

500,34 ANCM Karma Barındırma Modelleri Desteklenmiyor

Çalışan işlemi, aynı işlemde hem işlem uygulaması hem de işlem olmayan bir uygulamayı çalıştıramaz.

Bu hatayı düzeltmek için uygulamaları ayrı IIS uygulama havuzlarında çalıştırın.

500,35 ANCM Aynı In-Process Birden Çok Uygulama

Çalışan işlemi aynı işlemde birden çok işlem içinde uygulama çalıştıramaz.

Bu hatayı düzeltmek için uygulamaları ayrı IIS uygulama havuzlarında çalıştırın.

500,36 ANCM İşlem Dışında İşleyici Yük Hatası

İşlem dışında istek işleyicisi aspnetcorev2_outofprocess.dll, dosyanın yanında aspnetcorev2.dll değil. Bu, modülünün bozuk bir yüklemesini ASP.NET Core gösterir.

Bu hatayı düzeltmek için .NET Core Barındırma Paketi 'nin (IIS için) veya Visual Studio yüklemesini onarın (IIS Express).

500,37 ANCM başlangıç zamanı sınırı Içinde başlatılamadı

ANCM, belirtilen başlatma süresi sınırı içinde başlatılamadı. Varsayılan olarak, zaman aşımı 120 saniyedir.

Aynı makinede çok sayıda uygulama başlatılırken bu hata oluşabilir. Başlangıç sırasında sunucuda CPU/bellek kullanımı artışlarını denetleyin. Birden çok uygulamanın başlatma işlemini şaşırtmayı yapmanız gerekebilir.

500,38 ANCM uygulama DLL 'SI bulunamadı

ANCM, yürütülebilir dosyanın yanında olması gereken uygulama DLL 'sini bulamadı.

Bu hata, işlem içi barındırma modelini kullanarak tek dosya yürütülebilir dosyası olarak paketlenmiş bir uygulama barındırdığında oluşur. İşlem içi modelde, ANCM 'nin .NET Core uygulamasını mevcut IIS işlemine yüklemesi gerekir. Bu senaryo, tek dosya dağıtım modeli tarafından desteklenmez. Bu hatayı onarmak için uygulamanın proje dosyasında aşağıdaki yaklaşımlardan birini kullanın:

  1. MSBuild özelliğini olarak ayarlayarak tek dosya yayımlamayı devre dışı bırakın PublishSingleFile false .
  2. MSBuild özelliğini olarak ayarlayarak işlem dışı barındırma modeline geçin AspNetCoreHostingModel OutOfProcess .

502.5 İşlem Hatası

Çalışan işlemi başarısız olur. Uygulama başlamıyor.

ASP.NET Core modülü çalışan işlemini başlatmaya çalışır, ancak başlatılamıyor. işlem başlatma hatasının nedeni genellikle uygulama olay günlüğündeki girişlerden ve ASP.NET Core modülü stdout günlüğünde belirlenebilir.

yaygın bir hata durumu, ASP.NET Core paylaşılan bir framework 'ün mevcut olmayan bir sürümünü hedeflediğinden, uygulamanın yanlış yapılandırılmış olmasından kaynaklanır. ASP.NET Core paylaşılan framework 'ün hangi sürümlerinin hedef makinede yüklü olduğunu denetleyin. Paylaşılan çerçeve , makinede yüklü olan ve bir metapackage tarafından başvurulan derleme (.dll dosyaları) kümesidir Microsoft.AspNetCore.App . Metapackage başvurusu, gerekli en düşük sürümü belirtebilir. Daha fazla bilgi için bkz. paylaşılan çerçeve.

Bir barındırma veya uygulamanın yanlış yapılandırılması, çalışan işleminin başarısız olmasına neden olduğunda, 502,5 Işlem hata hatası sayfası döndürülür:

Uygulama başlatılamadı (hata kodu ' 0x800700C1 ')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

Uygulamanın derlemesi (.dll) yüklenemediğinden uygulama başlatılamadı.

Bu hata, yayımlanan uygulama ile W3wp/iisexpress işlemi arasında bir bit durumu uyuşmazlığı olduğunda oluşur.

Uygulama havuzunun 32 bit ayarının doğru olduğundan emin olun:

  1. IIS yöneticisinin uygulama havuzlarında uygulama havuzunu seçin.
  2. eylemler panelinde uygulama havuzunu düzenle altında gelişmiş Ayarlar ' yi seçin.
  3. Enable 32 bit uygulamalarını ayarla:
    • 32-bit (x86) bir uygulama dağıtıyorsanız, değerini olarak ayarlayın True .
    • 64 bit (x64) uygulaması dağıtıyorsanız, değerini olarak ayarlayın False .

<Platform>proje dosyasındaki MSBuild özelliği ile uygulamanın yayınlanan bit durumuyla ilgili bir çakışma olmadığını doğrulayın.

Bağlantı sıfırlama

Üstbilgiler gönderildikten sonra bir hata oluşursa, bir hata oluştuğunda sunucunun 500 Iç sunucu hatası gönderebilmesi için çok geç olur. Bu genellikle bir yanıt için karmaşık nesnelerin serileştirilmesi sırasında bir hata oluştuğunda meydana gelir. Bu tür bir hata, istemcide bir bağlantı sıfırlama hatası olarak görüntülenir. Uygulama günlüğü bu tür hataların giderilmesine yardımcı olabilir.

Varsayılan başlangıç sınırları

ASP.NET Core modülü varsayılan bir startuptimelimit 120 saniye ile yapılandırılır. Varsayılan değerde sol tarafta, modül bir işlem hatası günlüğe kaydedilmeden önce uygulamanın başlaması iki dakika kadar sürebilir. Modülü yapılandırma hakkında daha fazla bilgi için bkz. aspNetCore öğesinin öznitelikleri.

Azure App Service sorunlarını giderme

Önemli

Azure App Service ile ASP.NET Core önizleme Azure App Service

ASP.NET Core önizleme sürümü varsayılan olarak Azure App Service dağıtılabilir. ASP.NET Core önizleme sürümü kullanan bir uygulamayı barındırmak için bkz. ASP.NET Core önizleme yayınlarını Azure App Service.

Uygulama olay günlüğü (Azure App Service)

Uygulama olay günlüğüne erişmek için Azure portal sorunları Tanıla ve çöz dikey penceresini kullanın:

  1. Azure portal uygulama Hizmetleri' nde uygulamayı açın.
  2. Sorunları tanılama ve çözme’yi seçin.
  3. Tanılama araçları başlığını seçin.
  4. Destek Araçları' nın altında, uygulama olayları düğmesini seçin.
  5. Kaynak sütununda IIS AspNetCoreModule veya IIS Aspnetcoremodule v2 girişi tarafından belirtilen en son hatayı inceleyin.

Sorunları Tanıla ve çöz dikey penceresini kullanmanın bir alternatifi, uygulama olay günlüğü dosyasını doğrudan kudukullanarak incelemektir:

  1. Gelişmiş araçları geliştirme araçları alanında açın. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  2. Sayfanın üst kısmındaki gezinti çubuğunu kullanarak hata ayıklama konsolu 'nu açın ve cmd' yi seçin.
  3. LogFiles klasörünü açın.
  4. eventlog.xml dosyasının yanındaki kurşun kalem simgesini seçin.
  5. Günlüğü inceleyin. En son olayları görmek için günlüğün en altına gidin.

Uygulamayı kudu konsolunda çalıştırma

Birçok başlatma hatası, uygulama olay günlüğünde yararlı bilgiler oluşturmaz. Bu hatayı saptamak için, uygulamayı kudu uzaktan yürütme konsolu 'nda çalıştırabilirsiniz:

  1. Gelişmiş araçları geliştirme araçları alanında açın. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  2. Sayfanın üst kısmındaki gezinti çubuğunu kullanarak hata ayıklama konsolu 'nu açın ve cmd' yi seçin.

32 bit (x86) uygulamayı test etme

Geçerli yayın

  1. cd d:\home\site\wwwroot
  2. Uygulamayı çalıştırın:

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

Önizleme sürümünde çalışan çerçeveye bağımlı dağıtım

ASP.NET Core {VERSION} (x86) çalışma zamanı site uzantısının yüklenmesini gerektirir.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ( {X.Y} çalışma zamanı sürümüdür)
  2. Uygulamayı çalıştırın: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

64 bit (x64) uygulamayı test etme

Geçerli yayın

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

Önizleme sürümünde çalışan çerçeveye bağımlı dağıtım

ASP.NET Core {VERSION} (x64) çalışma zamanı site uzantısını yüklemeyi gerektirir.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ( {X.Y} çalışma zamanı sürümüdür)
  2. Uygulamayı çalıştırın: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

ASP.NET Core Modül stdout günlüğü (Azure App Service)

Uyarı

Stdout günlüğünü devre dışı bırakma başarısız olması, uygulama veya sunucu hatasına yol açabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için sınır yoktur. Yalnızca uygulama başlatma sorunlarını gidermek için stdout günlüğünü kullanın.

başlangıçtan sonra ASP.NET Core bir uygulamada genel günlüğe kaydetme için, günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlüğe kaydetme kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlüğü sağlayıcıları.

ASP.NET Core Module stdout günlüğü genellikle uygulama olay günlüğünde bulunmayan yararlı hata iletilerini kaydeder. Stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Azure portalında Web uygulamasına gidin.
  2. Giriş App Service arama kutusuna kudu yazın.
  3. Gelişmiş Araçlar Go seçeneğini > seçin.
  4. CMD'de hata ayıklama > seçin.
  5. Siteye/wwwroot'a gidin
  6. Veri dosyasını düzenlemek için kalem web.config seçin.
  7. öğesinde <aspNetCore /> öğesini ayarlayın ve stdoutLogEnabled="true" Kaydet'i seçin.

sorun giderme tamamlandıktan sonra stdout günlüğünü ayarıyla devre dışı stdoutLogEnabled="false" bırakma.

Daha fazla bilgi için bkz. ASP.NET Core Modülü.

ASP.NET Core Modül hata ayıklama günlüğü (Azure App Service)

ASP.NET Core Modül hata ayıklama günlüğü, modülden ek ve daha derin ASP.NET Core sağlar. stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Gelişmiş tanılama günlüğünü etkinleştirmek için, aşağıdakilerden birini gerçekleştirin:
    • Uygulamayı gelişmiş tanılama günlüğü için yapılandırmak üzere Gelişmiş tanılama günlükleri'nin yönergelerini izleyin. Uygulamayı yeniden kullanın.
    • <handlerSettings>Kudu konsolunu kullanarak Gelişmiş tanılama günlüklerinde gösterilenweb.configuygulamanın uygulama dosyasına ekleyin:
      1. Geliştirme Araçları alanında Gelişmiş Araçlar'a açın. Git düğmesini → seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
      2. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
      3. klasörlerinin wwwroot yolu > sitesini açın. Kalem web.config seçerek dosyanın adını düzenleyin. Gelişmiş <handlerSettings> tanılama günlükleri bölümünde gösterildiği gibi bölümünü ekleyin. Kaydet düğmesini seçin.
  2. Geliştirme Araçları alanında Gelişmiş Araçlar'a açın. Git düğmesini → seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
  3. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
  4. klasörlerinin wwwroot yolu > sitesini açın. aspnetcore-debug.log dosyası için bir yol girdiyebilirsiniz, dosya listede görünür. Bir yol sağlarsanız günlük dosyasının bulunduğu konuma gidin.
  5. Dosya adının yanında kalem düğmesiyle günlük dosyasını açın.

Sorun giderme işlemi tamamlandığında hata ayıklama günlüğünü devre dışı bırakma:

Gelişmiş hata ayıklama günlüğünü devre dışı bırakmak için, aşağıdakilerden birini gerçekleştirin:

  • dosyadan <handlerSettings> web.config yerel olarak kaldırın ve uygulamayı yeniden kullanın.
  • Kudu konsolunu kullanarakweb.config bölümünü <handlerSettings> kaldırın. Dosyayı kaydedin.

Daha fazla bilgi için bkz. ASP.NET Core modülüyle günlük oluşturma ve yeniden yönlendirme.

Uyarı

Hata ayıklama günlüğünün devre dışı bırakılamamasına uygulama veya sunucu hatası yol açabilir. Günlük dosyası boyutuyla ilgili bir sınır yoktur. Uygulama başlatma sorunlarını gidermek için yalnızca hata ayıklama günlüğünü kullanın.

Başlangıçtan sonra bir ASP.NET Core günlük kaydı için günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlük sağlayıcıları.

Yavaş veya askıda olan uygulama (Azure App Service)

Bir uygulama yavaş yanıt verdi veya istekte yanıt vermemaya başladı mı, bkz. Yavaş web uygulaması performans sorunlarını Azure App Service.

İzleme blade'leri

İzleme blade'leri, konu başlığında daha önce açıklanan yöntemlere alternatif bir sorun giderme deneyimi sağlar. Bu blade'ler 500 serisi hataları tanılamak için kullanılabilir.

ASP.NET Core Uzantıları'nın yüklü olduğunu onaylayın. Uzantılar yüklü değilse, bunları el ile yükleyin:

  1. GELIŞTIRME ARAÇLARI dikey penceresi bölümünde Uzantılar dikey penceresi'ne tıklayın.
  2. ASP.NET Core Uzantıları listede görün gerekir.
  3. Uzantılar yüklü değilse Ekle düğmesini seçin.
  4. Listeden ASP.NET Core Uzantılar'ı seçin.
  5. Yasal koşulları kabul etmek için Tamam'ı seçin.
  6. Uzantı ekle dikey penceresinde Tamam'ı seçin.
  7. Bir bilgi açılır iletisi, uzantıların başarıyla ne zaman yük olduğunu gösterir.

stdout günlüğü etkin değilse şu adımları izleyin:

  1. Aşağıdaki Azure portal GELIŞTIRME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresine seçin. Git düğmesini → seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
  2. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
  3. wwwroot yolunun klasörlerini açın ve listenin en altındaki > web.config dosyasını görmek için aşağı kaydırın.
  4. Dosyanın yanındaki kalem simgesineweb.config tıklayın.
  5. stdoutLogEnabled'i olarak true ayarlayın ve stdoutLogFile yolunu şu şekilde ayarlayın: \\?\%home%\LogFiles\stdout .
  6. Güncelleştirilmiş veri dosyasını kaydetmek için Kaydet'web.config seçin.

Tanılama günlüğünü etkinleştirmek için devam edin:

  1. Aşağıdaki Azure portal Tanılama günlükleri dikey penceresine seçin.
  2. Application Logging (Dosya Sistemi) ve Ayrıntılı hata iletileri için Açık anahtarını seçin. Dikey penceresindeki Kaydet düğmesini seçin.
  3. Başarısız İstek Olay Arabelleği (FREB) günlüğü olarak da bilinen başarısız istek izlemeyi dahil etmek için Başarısız istek izleme için Açık anahtarını seçin.
  4. Portalda Tanılama günlükleri dikey penceresi altında hemen listelenen Günlük akışı dikey penceresi'ne seçin.
  5. Uygulamaya bir istekte bulundurabilirsiniz.
  6. Günlük akışı verisi içinde hatanın nedeni belirtilmiştir.

Sorun giderme işlemi tamamlandıktan sonra stdout günlüğünü devre dışı bırakmayın.

Başarısız istek izleme günlüklerini (FREB günlükleri) görüntülemek için:

  1. Uygulamanın Sorun tanılama ve çözme dikey penceresine Azure portal.
  2. Kenar çubuğun DESTEK ARAÇLARI alanında Başarısız İstek İzleme Günlükleri'ne seçin.

Daha fazla bilgi için Azure App Service'da web uygulamaları için tanılama günlüğünü etkinleştirme konusunun Başarısız istek izlemeleri bölümüne ve Azure'da Web Apps için uygulama performansı SSS bölümüne bakın: Nasıl yaparım? başarısız istek izlemeyi açma?

Daha fazla bilgi için bkz. Web uygulamaları için tanılama günlüğünü etkinleştirme Azure App Service.

Uyarı

Stdout günlüğünün devre dışı bırakılama başarısızlığı uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için bir sınır yoktur.

Bir uygulamanın günlük kaydı ASP.NET Core günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlük sağlayıcıları.

IIS üzerinde sorun giderme

Uygulama Olay Günlüğü (IIS)

Uygulama Olay Günlüğüne erişin:

  1. Uygulamayı Başlat menüsü, Olay Görüntüleyicisi araması Olay Görüntüleyicisi seçin.
  2. Bu Olay Görüntüleyicisi günlükler düğümünü Windows açın.
  3. Uygulama'ya seçerek Uygulama Olay Günlüğü'lerini açın.
  4. Başarısız uygulamayla ilişkili hataları arama. Hatalar, Kaynak sütununda IIS AspNetCore Modülü IIS Express AspNetCore Modülü değerine sahip.

Uygulamayı komut isteminde çalıştırma

Birçok başlatma hatası, Uygulama Olay Günlüğü'ne yararlı bilgiler üretmez. Barındırma sisteminde bir komut isteminde uygulamayı çalıştırarak bazı hataların nedenini bulabilirsiniz.

Çerçeveye bağımlı dağıtım

Uygulama çerçeveye bağımlı bir dağıtımsa:

  1. Bir komut isteminde, dağıtım klasörüne gidin ve uygulamanın derlemesini dotnet.exe. Aşağıdaki komutta, yerine uygulama derlemesi adını <assembly_name> yazın: dotnet .\<assembly_name>.dll .
  2. Herhangi bir hata gösteren uygulamanın konsol çıkışı konsol penceresine yazılır.
  3. Uygulamaya istekte bulunduğu zaman hatalar oluşursa, dinleyen ana bilgisayar ve bağlantı noktasına bir Kestrel istekte bulundurabilirsiniz. Varsayılan ana bilgisayarı ve gönderiyi kullanarak için bir istekte http://localhost:5000/ bulundurarak. Uygulama uç nokta adreslerinden normal şekilde yanıt verirse, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgili ve uygulamanın içinde Kestrel daha az olasıdır.

Kendi içinde dağıtım

Uygulama kendi içinde bir dağıtımsa:

  1. Komut isteminde dağıtım klasörüne gidin ve uygulamanın yürütülebilir dosyasını çalıştırın. Aşağıdaki komutta, yerine uygulama derlemesi adını <assembly_name> yazın: <assembly_name>.exe .
  2. Herhangi bir hata gösteren uygulamanın konsol çıkışı konsol penceresine yazılır.
  3. Uygulamaya istekte bulunduğu zaman hatalar oluşursa, dinleyen ana bilgisayar ve bağlantı noktasına bir Kestrel istekte bulundurabilirsiniz. Varsayılan ana bilgisayarı ve gönderiyi kullanarak için bir istekte http://localhost:5000/ bulundurarak. Uygulama uç nokta adreslerinden normal şekilde yanıt verirse, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgili ve uygulamanın içinde Kestrel daha az olasıdır.

ASP.NET Core Modül stdout günlüğü (IIS)

Stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Barındırma sistemi üzerinde sitenin dağıtım klasörüne gidin.
  2. logs klasörü yoksa klasörü oluşturun. Dağıtımda günlükler klasörünü otomatik MSBuild etkinleştirme yönergeleri için Dizin yapısı konu başlığına bakın.
  3. web.config düzenleyin. stdoutLogEnabled'i olarak ayarlayın ve true stdoutLogFile yolunu logs klasörüne işaret edecek şekilde (örneğin, .\logs\stdout ) değiştirebilirsiniz. stdout yolundaki günlük dosyası adı ön ekidir. Günlük oluşturulduğunda otomatik olarak bir zaman damgası, işlem kimliği ve dosya uzantısı eklenir. Dosya stdout adı ön eki olarak, tipik bir günlük dosyası stdout_20180205184032_5412.log olarak adlandırılmış.
  4. Uygulama havuzu kimliğinizin logs klasörüne yazma izinlerine sahip olduğundan emin olun.
  5. Güncelleştirilmiş web.config kaydedin.
  6. Uygulamaya bir istekte bulundurabilirsiniz.
  7. logs klasörüne gidin. En son stdout günlüğünü bulun ve açın.
  8. Günlükte hatalara karşı çalışma.

Sorun giderme tamamlandıktan sonra stdout günlüğünü devre dışı bırakma:

  1. web.config düzenleyin.
  2. stdoutLogEnabled olarak false ayarlayın.
  3. Dosyayı kaydedin.

Daha fazla bilgi için bkz. ASP.NET Core Modülü.

Uyarı

Stdout günlüğünün devre dışı bırakılama başarısızlığı uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için bir sınır yoktur.

Bir uygulamanın günlük kaydı ASP.NET Core günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlük sağlayıcıları.

ASP.NET Core Modül hata ayıklama günlüğü (IIS)

Modül hata ayıklama günlüğünü etkinleştirmek için aşağıdaki web.config işleyici ayarlarını uygulamanın ASP.NET Core ekleyin:

<aspNetCore ...>
  <handlerSettings>
    <handlerSetting name="debugLevel" value="file" />
    <handlerSetting name="debugFile" value="c:\temp\ancm.log" />
  </handlerSettings>
</aspNetCore>

Günlük için belirtilen yolun mevcut olduğunu ve uygulama havuzunun kimliğinin konum üzerinde yazma izinlerine sahip olduğunu onaylayın.

Daha fazla bilgi için bkz. ASP.NET Core modülüyle günlük oluşturma ve yeniden yönlendirme.

Geliştirici Özel Durum Sayfasını Etkinleştirme

Ortam ASPNETCORE_ENVIRONMENT değişkeni, uygulamayı geliştirme web.config çalıştırmak için ortam değişkenine eklenebilir. Konak oluşturucuda tarafından uygulama başlatma sırasında ortam geçersiz kılınmamışsa, ortam değişkeninin ayarı, uygulama çalıştır modunda Geliştirici Özel Durum Sayfasının UseEnvironment görünmesine izin verir.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

ortam değişkeninin ayarı yalnızca İnternet'e açık olmayan hazırlama ve ASPNETCORE_ENVIRONMENT test sunucularında kullanılması önerilir. Sorun giderme sonrasında ortam değişkenleriniweb.config dosyasından kaldırın. içinde ortam değişkenlerini ayarlama hakkında bilgiweb.config bkz. aspNetCore öğesinin environmentVariables alt öğesi.

Bir uygulamadan veri alma

Bir uygulama isteklere yanıt veremiyorsa, terminal satır içi ara yazılımı kullanarak uygulamanın istek, bağlantı ve ek verilerini alın. Daha fazla bilgi ve örnek kod için bkz. ASP.NET Core projelerinde sorun giderme ve hata ayıklama .

Yavaş veya askıda olan uygulama (IIS)

Kilitlenme bilgi dökümü, sistem belleğinin anlık görüntüsü olup uygulama kilitlenmesi, başlatma hatası veya yavaş uygulamanın nedenini belirlemeye yardımcı olabilir.

Uygulama kilitleniyor veya özel durumla karşılaşıyor

Windows Hata Bildirimi (WER)ile döküm alma ve analiz etme:

  1. 'de kilitlenme dökümü dosyalarını tutmak için bir klasör c:\dumps oluşturun. Uygulama havuzunun klasöre yazma erişimi olması gerekir.

  2. EnableDumps PowerShell betiği çalıştırın:

  3. Uygulamayı kilitlenmeye neden olan koşullar altında çalıştırın.

  4. Kilitlenme gerçekleştikten sonra DisableDumps PowerShell betiği çalıştırın:

Uygulama kilitleniyor ve döküm toplama işlemi tamamlandıktan sonra uygulamanın normal şekilde sonlandırılmalarına izin verilir. PowerShell betiği, WER'yi uygulama başına en fazla beş döküm topacak şekilde yapılandırıyor.

Uyarı

Kilitlenme dökümleri büyük miktarda disk alanı (her biri birkaç gigabayta kadar) kaplar.

Uygulama askıda oluyor, başlatma sırasında başarısız oluyor veya normal çalışıyor

Uygulama yanıt vermese de yanıt vermese de kilitlenmezse, başlatma sırasında başarısız olursa veya normal şekilde çalıştırılacaksa bkz. Kullanıcı Modu Döküm Dosyaları: Döküm üretmek için uygun bir araç seçmek için En İyi Aracı Seçme.

Döküm analizi

Döküm, çeşitli yaklaşımlar kullanılarak analiz edilir. Daha fazla bilgi için bkz. User-Mode Döküm Dosyasını Çözümleme.

Paket önbelleklerini temizleme

Geliştirme makinesine yükseltmeden veya uygulama içindeki paket sürümlerini .NET Core SDK bir uygulamanın çalışması başarısız olabilir. Bazı durumlarda, büyük yükseltmeler yaparken tutarlı paketler bir uygulamayı bozabilirsiniz. Bu sorunların çoğu şu yönergelere uyularak düzeltilmiştir:

  1. Bin ve obj klasörlerini silin.

  2. dotnet nuget locals komutunu yürüterek paket önbelleklerini temizleyin ;komut kabuğundan temizleyin.

    Paket önbelleklerini temizleme,nuget.exe aracıyla ve komutu yürüterek de gerçek nuget locals all -clear olabilir. nuget.exe, Windows masaüstü işletim sistemiyle birlikte paketlenmiş bir yükleme değildir ve NuGet web sitesinden ayrı olarak alınmalıdır.

  3. Projeyi geri yükleme ve yeniden oluşturma.

  4. Uygulamayı yeniden dağıtmadan önce sunucu üzerinde dağıtım klasöründeki tüm dosyaları silin.

Ek kaynaklar

Azure belgeleri

Visual Studio belgeleri

Visual Studio Code belgeleri

Bu makalede, bir uygulama Azure App Service veya IIS'ye dağıtıldığında karşılaşılan hataları tanılama hakkında genel uygulama başlatma hataları hakkında bilgi ve yönergeler ve sağlar:

Uygulama başlatma hataları
Yaygın başlangıç HTTP durum kodu senaryolarını açıklar.

Azure App Service'da sorun giderme
Azure App Service dağıtılan uygulamalar için sorun giderme önerisi sağlar.

IIS üzerinde sorun giderme
ııs 'ye dağıtılan veya IIS Express yerel olarak çalışan uygulamalar için sorun giderme önerisi sağlar. bu kılavuz hem Windows Server hem de Windows masaüstü dağıtımları için geçerlidir.

Paket önbelleklerini temizle
Önemli güncelleştirmeler gerçekleştirirken veya paket sürümlerini değiştirirken ne yapmanız gerektiğini açıklar.

Ek Kaynaklar
Ek sorun giderme konularını listeler.

Uygulama başlatma hataları

Visual Studio, bir ASP.NET Core projesi, hata ayıklama sırasında IIS Express barındırmaya varsayılan olur. 502,5-Işlem hatası veya yerel olarak hata ayıklarken oluşan 500,30-başlatma hatası , bu konudaki öneri kullanılarak tanılanabilir.

403,14 yasak

Uygulama başlatılamıyor. Aşağıdaki hata günlüğe kaydedilir:

The Web server is configured to not list the contents of this directory.

Hata genellikle barındırma sisteminde, aşağıdaki senaryolardan birini içeren bozuk bir dağıtım nedeniyle oluşur:

  • Uygulama, barındırma sisteminde yanlış klasöre dağıtılır.
  • Dağıtım işlemi, uygulamanın tüm dosyalarını ve klasörlerini barındırma sistemindeki dağıtım klasörüne taşıyamadı.
  • web.config dosyası dağıtımda yok veya web.config dosya içeriği hatalı biçimlendirilmiş.

Aşağıdaki adımları gerçekleştirin:

  1. Tüm dosya ve klasörleri barındırma sistemindeki dağıtım klasöründen silin.
  2. Visual Studio, PowerShell veya el ile dağıtım gibi normal dağıtım yönteminizi kullanarak, uygulamanın yayımlama klasörünün içeriğini barındırma sistemine yeniden dağıtın:
    • web.config dosyasının dağıtımda mevcut olduğunu ve içeriğinin doğru olduğunu doğrulayın.
    • Azure App Service barındırırken, uygulamanın klasöre dağıtıldığını doğrulayın D:\home\site\wwwroot .
    • uygulama ııs tarafından barındırılıyorsa, uygulamanın ııs yöneticisinin temel Ayarlar gösterilen ııs fiziksel yoluna dağıtıldığını doğrulayın.
  3. Barındırma sistemindeki dağıtımı projenin Yayımla klasörünün içeriğiyle karşılaştırarak uygulamanın tüm dosya ve klasörlerinin dağıtıldığını doğrulayın.

yayımlanan ASP.NET Core uygulamasının düzeni hakkında daha fazla bilgi için bkz ASP.NET Core dizin yapısı .. web.config dosyası hakkında daha fazla bilgi için bkz ASP.NET Core Modülü ..

500 İç Sunucu Hatası

Uygulama başlıyor, ancak bir hata sunucunun isteği yerine getirmesini engelliyor.

Bu hata, başlangıç sırasında veya Yanıt oluştururken uygulamanın kodunda oluşur. Yanıtta içerik yok olabilir veya Yanıt, tarayıcıda 500 Iç sunucu hatası olarak görünebilir. Uygulama olay günlüğü genellikle uygulamanın normal olarak başlatıldığını belirtir. Sunucu perspektifinden doğru. Uygulama başlatıldı, ancak geçerli bir yanıt oluşturamıyor. uygulamayı sunucuda bir komut isteminde çalıştırın veya sorunu gidermek için ASP.NET Core modülü stdout günlüğünü etkinleştirin.

500,0 In-Process Işleyici yükleme hatası

Çalışan işlemi başarısız olur. Uygulama başlamıyor.

ASP.NET Core modülü .net Core CLR 'yi bulamıyor ve işlem içi istek işleyicisini (aspnetcorev2_inprocess.dll) bulamıyor. Şunları denetleyin:

500,0 Işlem dışı Işleyici yükleme hatası

Çalışan işlemi başarısız olur. Uygulama başlamıyor.

ASP.NET Core modülü işlem dışı barındırma isteği işleyicisini bulamıyor. aspnetcorev2_outofprocess.dll aspnetcorev2.dll yanındaki bir alt klasörde bulunduğundan emin olun.

502.5 İşlem Hatası

Çalışan işlemi başarısız olur. Uygulama başlamıyor.

ASP.NET Core modülü çalışan işlemini başlatmaya çalışır, ancak başlatılamıyor. işlem başlatma hatasının nedeni genellikle uygulama olay günlüğündeki girişlerden ve ASP.NET Core modülü stdout günlüğünde belirlenebilir.

yaygın bir hata durumu, ASP.NET Core paylaşılan bir framework 'ün mevcut olmayan bir sürümünü hedeflediğinden, uygulamanın yanlış yapılandırılmış olmasından kaynaklanır. ASP.NET Core paylaşılan framework 'ün hangi sürümlerinin hedef makinede yüklü olduğunu denetleyin. Paylaşılan çerçeve , makinede yüklü olan ve bir metapackage tarafından başvurulan derleme (.dll dosyaları) kümesidir Microsoft.AspNetCore.App . Metapackage başvurusu, gerekli en düşük sürümü belirtebilir. Daha fazla bilgi için bkz. paylaşılan çerçeve.

Bir barındırma veya uygulamanın yanlış yapılandırılması, çalışan işleminin başarısız olmasına neden olduğunda, 502,5 Işlem hata hatası sayfası döndürülür:

Uygulama başlatılamadı (hata kodu ' 0x800700C1 ')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

Uygulamanın derlemesi (.dll) yüklenemediğinden uygulama başlatılamadı.

Bu hata, yayımlanan uygulama ile W3wp/iisexpress işlemi arasında bir bit durumu uyuşmazlığı olduğunda oluşur.

Uygulama havuzunun 32 bit ayarının doğru olduğundan emin olun:

  1. IIS yöneticisinin uygulama havuzlarında uygulama havuzunu seçin.
  2. eylemler panelinde uygulama havuzunu düzenle altında gelişmiş Ayarlar ' yi seçin.
  3. Enable 32 bit uygulamalarını ayarla:
    • 32-bit (x86) bir uygulama dağıtıyorsanız, değerini olarak ayarlayın True .
    • 64 bit (x64) uygulaması dağıtıyorsanız, değerini olarak ayarlayın False .

<Platform>proje dosyasındaki MSBuild özelliği ile uygulamanın yayınlanan bit durumuyla ilgili bir çakışma olmadığını doğrulayın.

Bağlantı sıfırlama

Üstbilgiler gönderildikten sonra bir hata oluşursa, bir hata oluştuğunda sunucunun 500 Iç sunucu hatası gönderebilmesi için çok geç olur. Bu genellikle bir yanıt için karmaşık nesnelerin serileştirilmesi sırasında bir hata oluştuğunda meydana gelir. Bu tür bir hata, istemcide bir bağlantı sıfırlama hatası olarak görüntülenir. Uygulama günlüğü bu tür hataların giderilmesine yardımcı olabilir.

Varsayılan başlangıç sınırları

ASP.NET Core modülü varsayılan bir startuptimelimit 120 saniye ile yapılandırılır. Varsayılan değerde sol tarafta, modül bir işlem hatası günlüğe kaydedilmeden önce uygulamanın başlaması iki dakika kadar sürebilir. Modülü yapılandırma hakkında daha fazla bilgi için bkz. aspNetCore öğesinin öznitelikleri.

Azure App Service sorunlarını giderme

Önemli

Azure App Service ile ASP.NET Core önizleme Azure App Service

ASP.NET Core önizleme sürümü varsayılan olarak Azure App Service dağıtılabilir. ASP.NET Core önizleme sürümü kullanan bir uygulamayı barındırmak için bkz. ASP.NET Core önizleme yayınlarını Azure App Service.

Uygulama olay günlüğü (Azure App Service)

Uygulama olay günlüğüne erişmek için Azure portal sorunları Tanıla ve çöz dikey penceresini kullanın:

  1. Azure portal uygulama Hizmetleri' nde uygulamayı açın.
  2. Sorunları tanılama ve çözme’yi seçin.
  3. Tanılama araçları başlığını seçin.
  4. Destek Araçları' nın altında, uygulama olayları düğmesini seçin.
  5. Kaynak sütununda IIS AspNetCoreModule veya IIS Aspnetcoremodule v2 girişi tarafından belirtilen en son hatayı inceleyin.

Sorunları Tanıla ve çöz dikey penceresini kullanmanın bir alternatifi, uygulama olay günlüğü dosyasını doğrudan kudukullanarak incelemektir:

  1. Gelişmiş araçları geliştirme araçları alanında açın. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  2. Sayfanın üst kısmındaki gezinti çubuğunu kullanarak hata ayıklama konsolu 'nu açın ve cmd' yi seçin.
  3. LogFiles klasörünü açın.
  4. eventlog.xml dosyasının yanındaki kurşun kalem simgesini seçin.
  5. Günlüğü inceleyin. En son olayları görmek için günlüğün en altına gidin.

Uygulamayı kudu konsolunda çalıştırma

Birçok başlatma hatası, uygulama olay günlüğünde yararlı bilgiler oluşturmaz. Bu hatayı saptamak için, uygulamayı kudu uzaktan yürütme konsolu 'nda çalıştırabilirsiniz:

  1. Gelişmiş araçları geliştirme araçları alanında açın. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  2. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.

32 bit (x86) uygulamayı test edin

Geçerli sürüm

  1. cd d:\home\site\wwwroot
  2. Uygulamayı çalıştırın:

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

Önizleme sürümü üzerinde çalışan çerçeveye bağımlı dağıtım

{VERSION} (x86) çalışma zamanı site uzantısını ASP.NET Core gerektirir.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ( {X.Y} çalışma zamanı sürümüdür)
  2. Uygulamayı çalıştırın: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

64 bit (x64) uygulamayı test edin

Geçerli sürüm

  • Uygulama 64 bit (x64) çerçeveye bağımlı bir dağıtımsa:
    1. cd D:\Program Files\dotnet
    2. Uygulamayı çalıştırın: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
  • Uygulama kendi içinde bir dağıtımsa:
    1. cd D:\home\site\wwwroot
    2. Uygulamayı çalıştırın: {ASSEMBLY NAME}.exe

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

Önizleme sürümü üzerinde çalışan çerçeveye bağımlı dağıtım

{VERSION} (x64) çalışma zamanı site uzantısını ASP.NET Core gerektirir.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ( {X.Y} çalışma zamanı sürümüdür)
  2. Uygulamayı çalıştırın: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

ASP.NET Core Modül stdout günlüğü (Azure App Service)

Modül ASP.NET Core stdout günlüğü genellikle Uygulama Olay Günlüğünde bulunamayan yararlı hata iletilerini kaydediyor. Stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Uygulamanın Sorun tanılama ve çözme dikey penceresine Azure portal.
  2. SORUN KATEGORISINI SEÇ altında Web Uygulaması Aşağı düğmesini seçin.
  3. Önerilen Çözümler > Stdout Günlük Yeniden Yönlendirmeyi Etkinleştir altında, kudu konsolunu düzenlemek için Kudu Konsolunu aç düğmesini Web.Config.
  4. Kudu Tanılama Konsolu'nda klasörleri wwwroot yolunda > açın. Listeyi aşağı kaydırarak web.config alttaki dosyanın listesini açın.
  5. Dosyanın yanındaki kalem simgesineweb.config tıklayın.
  6. stdoutLogEnabled'i olarak true ayarlayın ve stdoutLogFile yolunu şu şekilde ayarlayın: \\?\%home%\LogFiles\stdout .
  7. Güncelleştirilmiş veri dosyasını kaydetmek için Kaydet'web.config seçin.
  8. Uygulamaya bir istekte bulundurabilirsiniz.
  9. Azure portalına dönün. GELIŞTIRME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresine seçin. Git düğmesini → seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
  10. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
  11. LogFiles klasörünü seçin.
  12. Değiştirilen sütunu inceler ve stdout günlüğünü en son değiştirme tarihiyle düzenlemek için kalem simgesini seçin.
  13. Günlük dosyası açıldığında hata görüntülenir.

Sorun giderme işlemi tamamlandığında stdout günlüğünü devre dışı bırakma:

  1. Kudu Tanılama Konsolu'nda wwwroot yolu sitesine > dönarak dosyanınweb.configaçın. Kalem web.config seçerek yeni bir dosya açın.
  2. stdoutLogEnabled'i olarak false ayarlayın.
  3. Dosyayı kaydetmek için Kaydet'i seçin.

Daha fazla bilgi için bkz. ASP.NET Core Modülü.

Uyarı

Stdout günlüğünün devre dışı bırakılama başarısızlığı uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için bir sınır yoktur. Uygulama başlatma sorunlarını gidermek için yalnızca stdout günlüğünü kullanın.

Başlangıçtan sonra bir ASP.NET Core günlük kaydı için günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlük sağlayıcıları.

ASP.NET Core Modül hata ayıklama günlüğü (Azure App Service)

ASP.NET Core Modül hata ayıklama günlüğü, modülden ek ve daha derin ASP.NET Core sağlar. Stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Gelişmiş tanılama günlüğünü etkinleştirmek için, aşağıdakilerden birini gerçekleştirin:
    • Uygulamayı gelişmiş tanılama günlüğü için yapılandırmak üzere Gelişmiş tanılama günlükleri'nin yönergelerini izleyin. Uygulamayı yeniden kullanın.
    • <handlerSettings>Kudu konsolunu kullanarak Gelişmiş tanılama günlüklerinde gösterilenweb.configuygulamanın uygulama dosyasına ekleyin:
      1. Geliştirme Araçları alanında Gelişmiş Araçlar'a açın. Git düğmesini → seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
      2. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
      3. klasörlerinin wwwroot yolu > sitesini açın. Kalem web.config seçerek dosyanın adını düzenleyin. Gelişmiş <handlerSettings> tanılama günlükleri bölümünde gösterildiği gibi bölümünü ekleyin. Kaydet düğmesini seçin.
  2. Geliştirme Araçları alanında Gelişmiş Araçlar'a açın. Git düğmesini → seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
  3. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
  4. klasörlerinin wwwroot yolu > sitesini açın. aspnetcore-debug.log dosyası için bir yol girdiyebilirsiniz, dosya listede görünür. Bir yol sağlarsanız günlük dosyasının bulunduğu konuma gidin.
  5. Dosya adının yanında kalem düğmesiyle günlük dosyasını açın.

Sorun giderme işlemi tamamlandığında hata ayıklama günlüğünü devre dışı bırakma:

Gelişmiş hata ayıklama günlüğünü devre dışı bırakmak için, aşağıdakilerden birini gerçekleştirin:

  • dosyadan <handlerSettings> web.config yerel olarak kaldırın ve uygulamayı yeniden kullanın.
  • Kudu konsolunu kullanarakweb.config bölümünü <handlerSettings> kaldırın. Dosyayı kaydedin.

Daha fazla bilgi için bkz. ASP.NET Core modülüyle günlük oluşturma ve yeniden yönlendirme.

Uyarı

Hata ayıklama günlüğünün devre dışı bırakılamamasına uygulama veya sunucu hatası yol açabilir. Günlük dosyası boyutuyla ilgili bir sınır yoktur. Uygulama başlatma sorunlarını gidermek için yalnızca hata ayıklama günlüğünü kullanın.

Başlangıçtan sonra bir ASP.NET Core günlük kaydı için günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlük sağlayıcıları.

Yavaş veya askıda olan uygulama (Azure App Service)

Bir uygulama yavaş yanıt verir veya istekte askıda olduğunda aşağıdaki makalelere bakın:

İzleme blade'leri

İzleme blade'leri, konu başlığında daha önce açıklanan yöntemlere alternatif bir sorun giderme deneyimi sağlar. Bu blade'ler 500 serisi hataları tanılamak için kullanılabilir.

ASP.NET Core Uzantıları'nın yüklü olduğunu onaylayın. Uzantılar yüklü değilse, bunları el ile yükleyin:

  1. GELIŞTIRME ARAÇLARI dikey penceresi bölümünde Uzantılar dikey penceresi'ne tıklayın.
  2. ASP.NET Core Uzantıları listede görün gerekir.
  3. Uzantılar yüklü değilse Ekle düğmesini seçin.
  4. Listeden ASP.NET Core Uzantılar'ı seçin.
  5. Yasal koşulları kabul etmek için Tamam'ı seçin.
  6. Uzantı ekle dikey penceresinde Tamam'ı seçin.
  7. Bir bilgi açılır iletisi, uzantıların başarıyla ne zaman yük olduğunu gösterir.

stdout günlüğü etkin değilse şu adımları izleyin:

  1. Aşağıdaki Azure portal GELIŞTIRME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresine seçin. Git düğmesini → seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
  2. Sayfanın üst kısmında gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
  3. wwwroot yolunun klasörlerini açın ve listenin en altındaki > web.config dosyasını görmek için aşağı kaydırın.
  4. Dosyanın yanındaki kalem simgesineweb.config tıklayın.
  5. stdoutLogEnabled'i olarak true ayarlayın ve stdoutLogFile yolunu şu şekilde ayarlayın: \\?\%home%\LogFiles\stdout .
  6. Güncelleştirilmiş dosya dosyasını kaydetmek için Kaydet'web.config seçin.

Tanılama günlüğünü etkinleştirmek için devam edin:

  1. Aşağıdaki Azure portal Tanılama günlükleri dikey penceresine seçin.
  2. Application Logging (Dosya Sistemi) ve Ayrıntılı hata iletileri için Açık anahtarını seçin. Dikey penceresindeki Kaydet düğmesini seçin.
  3. Başarısız İstek Olay Arabelleği (FREB) günlüğü olarak da bilinen başarısız istek izlemeyi dahil etmek için Başarısız istek izleme için Açık anahtarını seçin.
  4. Portalda Tanılama günlükleri dikey penceresi altında hemen listelenen Günlük akışı dikey penceresi'ne seçin.
  5. Uygulamaya bir istekte bulundurabilirsiniz.
  6. Günlük akışı verisi içinde hatanın nedeni belirtilmiştir.

Sorun giderme işlemi tamamlandıktan sonra stdout günlüğünü devre dışı bırakmayın.

Başarısız istek izleme günlüklerini (FREB günlükleri) görüntülemek için:

  1. Uygulamanın Sorun tanılama ve çözme dikey penceresine Azure portal.
  2. Kenar çubuğun DESTEK ARAÇLARI alanında Başarısız İstek İzleme Günlükleri'ne seçin.

Daha fazla bilgi için Azure App Service'da web uygulamaları için tanılama günlüğünü etkinleştirme konusunun Başarısız istek izlemeleri bölümüne ve Azure'da Web Apps için uygulama performansı SSS bölümüne bakın: Nasıl yaparım? başarısız istek izlemeyi açma?

Daha fazla bilgi için bkz. Web uygulamaları için tanılama günlüğünü etkinleştirme Azure App Service.

Uyarı

Stdout günlüğünün devre dışı bırakılama başarısızlığı uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için bir sınır yoktur.

Bir uygulamanın günlük kaydı ASP.NET Core günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlük sağlayıcıları.

IIS üzerinde sorun giderme

Uygulama Olay Günlüğü (IIS)

Uygulama Olay Günlüğüne erişin:

  1. Uygulamayı Başlat menüsü, Olay Görüntüleyicisi araması Olay Görüntüleyicisi seçin.
  2. Bu Olay Görüntüleyicisi Günlükler düğümünü Windows açın.
  3. Uygulama'ya seçerek Uygulama Olay Günlüğü'lerini açın.
  4. Başarısız uygulamayla ilişkili hataları arama. Hatalar, Kaynak sütununda IIS AspNetCore Modülü IIS Express AspNetCore Modülü değerine sahip.

Uygulamayı komut isteminde çalıştırma

Birçok başlatma hatası, Uygulama Olay Günlüğü'ne yararlı bilgiler üretmez. Barındırma sisteminde bir komut isteminde uygulamayı çalıştırarak bazı hataların nedenini bulabilirsiniz.

Çerçeveye bağımlı dağıtım

Uygulama çerçeveye bağımlı bir dağıtımsa:

  1. Komut isteminde, dağıtım klasörüne gidin ve uygulamanın derlemesini dotnet.exe. Aşağıdaki komutta, yerine uygulama derlemesi adını <assembly_name> yazın: dotnet .\<assembly_name>.dll .
  2. Herhangi bir hata gösteren uygulamanın konsol çıkışı konsol penceresine yazılır.
  3. Uygulamaya istekte bulunduğu zaman hatalar oluşursa, dinleyen ana bilgisayar ve bağlantı noktasına bir Kestrel istekte bulundurabilirsiniz. Varsayılan ana bilgisayarı ve gönderiyi kullanarak için bir istekte http://localhost:5000/ bulundurarak. Uygulama uç nokta adreslerinden normal şekilde yanıt verirse, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgili ve uygulamanın içinde Kestrel daha az olasıdır.

Kendi içinde dağıtım

Uygulama kendi içinde bir dağıtımsa:

  1. Komut isteminde dağıtım klasörüne gidin ve uygulamanın yürütülebilir dosyasını çalıştırın. Aşağıdaki komutta, yerine uygulama derlemesi adını <assembly_name> yazın: <assembly_name>.exe .
  2. Herhangi bir hata gösteren uygulamanın konsol çıkışı konsol penceresine yazılır.
  3. Uygulamaya istekte bulunduğu zaman hatalar oluşursa, dinleyen ana bilgisayar ve bağlantı noktasına bir Kestrel istekte bulundurabilirsiniz. Varsayılan ana bilgisayarı ve gönderiyi kullanarak için bir istekte http://localhost:5000/ bulundurarak. Uygulama uç nokta adreslerinden normal şekilde yanıt verirse, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgili ve uygulamanın içinde Kestrel daha az olasıdır.

ASP.NET Core Modül stdout günlüğü (IIS)

stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Barındırma sistemi üzerinde sitenin dağıtım klasörüne gidin.
  2. logs klasörü yoksa klasörü oluşturun. Dağıtımda günlükler klasörünü otomatik MSBuild günlükler klasörünü etkinleştirme yönergeleri için Dizin yapısı konu başlığına bakın.
  3. web.config düzenleyin. stdoutLogEnabled'i olarak ayarlayın ve true stdoutLogFile yolunu logs klasörüne işaret edecek şekilde (örneğin, .\logs\stdout ) değiştirebilirsiniz. stdout yolundaki günlük dosyası adı ön ekidir. Günlük oluşturulduğunda otomatik olarak bir zaman damgası, işlem kimliği ve dosya uzantısı eklenir. Dosya stdout adı ön eki olarak, tipik bir günlük dosyası stdout_20180205184032_5412.log olarak adlandırılmış.
  4. Uygulama havuzu kimliğinizin logs klasörüne yazma izinlerine sahip olduğundan emin olun.
  5. Güncelleştirilmiş web.config kaydedin.
  6. Uygulamaya bir istekte bulundurabilirsiniz.
  7. logs klasörüne gidin. En son stdout günlüğünü bulun ve açın.
  8. Günlükte hatalara karşı çalışma.

Sorun giderme tamamlandıktan sonra stdout günlüğünü devre dışı bırakma:

  1. web.config düzenleyin.
  2. stdoutLogEnabled olarak false ayarlayın.
  3. Dosyayı kaydedin.

Daha fazla bilgi için bkz. ASP.NET Core Modülü.

Uyarı

Stdout günlüğünün devre dışı bırakılama başarısızlığı uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için bir sınır yoktur.

Bir uygulamanın günlük kaydı ASP.NET Core günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlük sağlayıcıları.

ASP.NET Core Modül hata ayıklama günlüğü (IIS)

Modül hata ayıklama günlüğünü etkinleştirmek için uygulamanınweb.config aşağıdaki ASP.NET Core ayarlarını ekleyin:

<aspNetCore ...>
  <handlerSettings>
    <handlerSetting name="debugLevel" value="file" />
    <handlerSetting name="debugFile" value="c:\temp\ancm.log" />
  </handlerSettings>
</aspNetCore>

Günlük için belirtilen yolun mevcut olduğunu ve uygulama havuzunun kimliğinin konum üzerinde yazma izinlerine sahip olduğunu onaylayın.

Daha fazla bilgi için bkz. ASP.NET Core modülüyle günlük oluşturma ve yeniden yönlendirme.

Geliştirici Özel Durum Sayfasını Etkinleştirme

Ortam ASPNETCORE_ENVIRONMENT değişkeni, uygulamayı geliştirme web.config çalıştırmak için ortam değişkenine eklenebilir. Konak oluşturucuda tarafından uygulama başlatma sırasında ortam geçersiz kılınmamışsa, ortam değişkeninin ayarı, uygulama çalıştır modunda Geliştirici Özel Durum Sayfasının UseEnvironment görünmesine izin verir.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

ortam değişkeninin ayarı yalnızca İnternet'e açık olmayan hazırlama ve ASPNETCORE_ENVIRONMENT test sunucularında kullanılması önerilir. Sorun giderme sonrasında ortam değişkenleriniweb.config dosyasından kaldırın. içinde ortam değişkenlerini ayarlama hakkında bilgiweb.config bkz. aspNetCore öğesinin environmentVariables alt öğesi.

Bir uygulamadan veri alma

Bir uygulama isteklere yanıt veremiyorsa, terminal satır içi ara yazılımı kullanarak uygulamanın istek, bağlantı ve ek verilerini alın. Daha fazla bilgi ve örnek kod için bkz. ASP.NET Core projelerinde sorun giderme ve hata ayıklama .

Yavaş veya askıda olan uygulama (IIS)

Kilitlenme bilgi dökümü, sistemin belleğinin anlık görüntüsü olup uygulama kilitlenmesi, başlatma hatası veya yavaş uygulamanın nedenini belirlemeye yardımcı olabilir.

Uygulama kilitleniyor veya özel durumla karşılaşıyor

Windows Hata Bildirimi (WER)ile döküm alma ve analiz etme:

  1. 'de kilitlenme dökümü dosyalarını tutmak için bir klasör c:\dumps oluşturun. Uygulama havuzunun klasöre yazma erişimi olması gerekir.

  2. EnableDumps PowerShell betiği çalıştırın:

  3. Uygulamayı kilitlenmeye neden olan koşullar altında çalıştırın.

  4. Kilitlenme gerçekleştikten sonra DisableDumps PowerShell betiği çalıştırın:

Uygulama kilitleniyor ve döküm toplama işlemi tamamlandıktan sonra uygulamanın normal şekilde sonlandırılmalarına izin verilir. PowerShell betiği, WER'yi uygulama başına en fazla beş döküm topacak şekilde yapılandırıyor.

Uyarı

Kilitlenme dökümleri büyük miktarda disk alanı (her biri birkaç gigabayta kadar) kaplar.

Uygulama askıda oluyor, başlatma sırasında başarısız oluyor veya normal çalışıyor

Uygulama yanıt vermese de yanıt vermese de kilitlenmezse, başlatma sırasında başarısız olursa veya normal şekilde çalıştırılacaksa bkz. Kullanıcı Modu Döküm Dosyaları: Döküm üretmek için uygun bir araç seçmek için En İyi Aracı Seçme.

Döküm analizi

Döküm, çeşitli yaklaşımlar kullanılarak analiz edilir. Daha fazla bilgi için bkz. User-Mode Döküm Dosyasını Çözümleme.

Paket önbelleklerini temizleme

Geliştirme makinesine yükseltmeden veya uygulama içindeki paket sürümlerini .NET Core SDK bir uygulamanın çalışması başarısız olabilir. Bazı durumlarda, büyük yükseltmeler yaparken tutarlı paketler bir uygulamayı bozabilirsiniz. Bu sorunların çoğu şu yönergelere uyularak düzeltilmiştir:

  1. Bin ve obj klasörlerini silin.

  2. dotnet nuget locals komutunu yürüterek paket önbelleklerini temizleyin ;komut kabuğundan temizleyin.

    Paket önbelleklerini temizleme,nuget.exe aracıyla ve komutu yürüterek de gerçek nuget locals all -clear olabilir. nuget.exe, Windows masaüstü işletim sistemiyle birlikte paketlenmiş bir yükleme değildir ve NuGet web sitesinden ayrı olarak alınmalıdır.

  3. Projeyi geri yükleme ve yeniden oluşturma.

  4. Uygulamayı yeniden dağıtmadan önce sunucu üzerinde dağıtım klasöründeki tüm dosyaları silin.

Ek kaynaklar

Azure belgeleri

Visual Studio belgeleri

Visual Studio Code belgeleri

Bu makalede, yaygın uygulama başlatma hataları hakkında bilgi ve bir uygulama Azure App Service VEYA IIS'ye dağıtıldığında oluşan hataların nasıl tanılandırılacağı hakkında yönergeler ve sağlar:

Uygulama başlatma hataları
Yaygın başlangıç HTTP durum kodu senaryolarını açıklar.

Azure App Service'da sorun giderme
Sanal ağlara dağıtılan uygulamalar için sorun giderme Azure App Service.

IIS üzerinde sorun giderme
IIS'ye dağıtılan veya yerel olarak çalışan uygulamalar için sorun IIS Express öneriler sağlar. Bu kılavuz hem Windows Server hem de Windows dağıtımları için geçerlidir.

Paket önbelleklerini temizleme
Büyük yükseltmeler yaparken veya paket sürümlerini değiştirirken, tutarlı paketler bir uygulamayı bozacak olduğunda ne yapacaklarını açıklar.

Ek Kaynaklar
Ek sorun giderme konularını listeler.

Uygulama başlatma hataları

Bu Visual Studio, hata ayıklama ASP.NET Core bir proje varsayılan IIS Express olarak barındırıyor. Yerel olarak hata ayıklama sırasında oluşan bir 502.5 İşlem Hatası, bu konudaki öneri kullanılarak tanılanabiliyor.

403.14 Yasak

Uygulama başlatılamaz. Aşağıdaki hata günlüğe kaydedilir:

The Web server is configured to not list the contents of this directory.

Hata genellikle aşağıdaki senaryolardan herhangi birini içeren barındırma sistemi üzerinde bozuk bir dağıtımdan kaynaklandı:

  • Uygulama, barındırma sistemi üzerinde yanlış klasöre dağıtıldı.
  • Dağıtım işlemi uygulamanın tüm dosyalarını ve klasörlerini barındırma sistemi üzerinde dağıtım klasörüne taşıyamadı.
  • web.config dosyası dağıtımda eksik veya dosya web.config yanlış biçimlendirilmiş.

Aşağıdaki adımları gerçekleştirin:

  1. Barındırma sistemi üzerinde dağıtım klasöründen tüm dosya ve klasörleri silin.
  2. Visual Studio, PowerShell veya el ile dağıtım gibi normal dağıtım yönteminizi kullanarak uygulamanın publish klasörünün içeriğini barındırma sistemine yeniden dağıtma:
    • Dağıtımda web.config dosyanın mevcut olduğunu ve içeriğinin doğru olduğunu onaylayın.
    • Uygulamanın Azure App Service, uygulamanın klasöre dağıtıldığından D:\home\site\wwwroot onaylayın.
    • Uygulama IIS tarafından barındırıldığında, uygulamanın IIS Yöneticisi'nin Temel yolunda gösterilen IIS Fiziksel yoluna dağıtıldığından Ayarlar.
  3. Barındırma sisteminde dağıtımı projenin yayımlama klasörünün içeriğiyle karşılaştırarak uygulamanın tüm dosya ve klasörlerinin dağıtıldığından onaylayın.

Yayımlanmış bir uygulamanın düzeni hakkında daha fazla bilgi ASP.NET Core bkz. ASP.NET Core dizin yapısı . Yeni dosya hakkında daha fazlaweb.config bkz. ASP.NET Core Modülü .

500 İç Sunucu Hatası

Uygulama başlatılır, ancak bir hata sunucunun isteği yerine getirmesini önler.

Bu hata, başlatma sırasında veya yanıt oluşturulurken uygulamanın kodunda oluşur. Yanıt hiçbir içerik içerenin veya yanıt tarayıcıda 500 İç Sunucu Hatası olarak görünebilir. Uygulama Olay Günlüğü genellikle uygulamanın normal şekilde başlat olduğunu belirtir. Sunucunun perspektifinden doğru. Uygulama başlatılasa da geçerli bir yanıt oluşturamayabilirsiniz. Sorunu gidermek için uygulamayı sunucuda bir komut isteminde çalıştırın veya ASP.NET Core Modül stdout günlüğünü etkinleştirin.

502.5 İşlem Hatası

Çalışan işlemi başarısız olur. Uygulama başlamaz.

ASP.NET Core Modülü çalışan işlemini başlatmayı dener ama başlatamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve Uygulama Modülü stdout günlüğü ASP.NET Core belirlenebilir.

Yaygın bir hata koşulu, uygulamanın mevcut olmayan paylaşılan çerçevenin ASP.NET Core yanlış yapılandırılmasıdır. Hedef makinede paylaşılan ASP.NET Core hangi sürümlerinin yüklü olduğunu kontrol edin. Paylaşılan çerçeve, makineye yüklenmiş ve gibi bir meta paket tarafından başvurulan derlemeler (.dlldosyaları) kümesidir. Microsoft.AspNetCore.App Meta paket başvurusu gereken en düşük sürümü belirtmektedir. Daha fazla bilgi için bkz. Paylaşılan çerçeve.

Bir barındırma veya uygulama yanlış yapılandırması çalışan işleminin başarısız olmasına neden olduğunda 502.5 İşlem Hatası hata sayfası döndürülür:

Uygulama başlatılamadı (ErrorCode '0x800700c1')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

Uygulamanın derlemesi (.dll) yüklenemedi.

Bu hata, yayımlanan uygulama ile w3wp/iisexpress işlemi arasında bir bitlik eşleşmemesi olduğunda oluşur.

Uygulama havuzunun 32 bit ayarının doğru olduğunu onaylayın:

  1. IIS Yöneticisi'nin Uygulama Havuzları'nın uygulama havuzunu seçin.
  2. eylemler panelinde uygulama havuzunu düzenle altında gelişmiş Ayarlar ' yi seçin.
  3. Enable 32 bit uygulamalarını ayarla:
    • 32-bit (x86) bir uygulama dağıtıyorsanız, değerini olarak ayarlayın True .
    • 64 bit (x64) uygulaması dağıtıyorsanız, değerini olarak ayarlayın False .

<Platform>proje dosyasındaki MSBuild özelliği ile uygulamanın yayınlanan bit durumuyla ilgili bir çakışma olmadığını doğrulayın.

Bağlantı sıfırlama

Üstbilgiler gönderildikten sonra bir hata oluşursa, bir hata oluştuğunda sunucunun 500 Iç sunucu hatası gönderebilmesi için çok geç olur. Bu genellikle bir yanıt için karmaşık nesnelerin serileştirilmesi sırasında bir hata oluştuğunda meydana gelir. Bu tür bir hata, istemcide bir bağlantı sıfırlama hatası olarak görüntülenir. Uygulama günlüğü bu tür hataların giderilmesine yardımcı olabilir.

Varsayılan başlangıç sınırları

ASP.NET Core modülü varsayılan bir startuptimelimit 120 saniye ile yapılandırılır. Varsayılan değerde sol tarafta, modül bir işlem hatası günlüğe kaydedilmeden önce uygulamanın başlaması iki dakika kadar sürebilir. Modülü yapılandırma hakkında daha fazla bilgi için bkz. aspNetCore öğesinin öznitelikleri.

Azure App Service sorunlarını giderme

Önemli

Azure App Service ile ASP.NET Core önizleme Azure App Service

ASP.NET Core önizleme sürümü varsayılan olarak Azure App Service dağıtılabilir. ASP.NET Core önizleme sürümü kullanan bir uygulamayı barındırmak için bkz. ASP.NET Core önizleme yayınlarını Azure App Service.

Uygulama olay günlüğü (Azure App Service)

Uygulama olay günlüğüne erişmek için Azure portal sorunları Tanıla ve çöz dikey penceresini kullanın:

  1. Azure portal uygulama Hizmetleri' nde uygulamayı açın.
  2. Sorunları tanılama ve çözme’yi seçin.
  3. Tanılama araçları başlığını seçin.
  4. Destek Araçları' nın altında, uygulama olayları düğmesini seçin.
  5. Kaynak sütununda IIS AspNetCoreModule veya IIS Aspnetcoremodule v2 girişi tarafından belirtilen en son hatayı inceleyin.

Sorunları Tanıla ve çöz dikey penceresini kullanmanın bir alternatifi, uygulama olay günlüğü dosyasını doğrudan kudukullanarak incelemektir:

  1. Gelişmiş araçları geliştirme araçları alanında açın. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  2. Sayfanın üst kısmındaki gezinti çubuğunu kullanarak hata ayıklama konsolu 'nu açın ve cmd' yi seçin.
  3. LogFiles klasörünü açın.
  4. eventlog.xml dosyasının yanındaki kurşun kalem simgesini seçin.
  5. Günlüğü inceleyin. En son olayları görmek için günlüğün en altına gidin.

Uygulamayı kudu konsolunda çalıştırma

Birçok başlatma hatası, uygulama olay günlüğünde yararlı bilgiler oluşturmaz. Bu hatayı saptamak için, uygulamayı kudu uzaktan yürütme konsolu 'nda çalıştırabilirsiniz:

  1. Gelişmiş araçları geliştirme araçları alanında açın. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  2. Sayfanın üst kısmındaki gezinti çubuğunu kullanarak hata ayıklama konsolu 'nu açın ve cmd' yi seçin.

32 bit (x86) uygulamayı test etme

Geçerli yayın

  1. cd d:\home\site\wwwroot
  2. Uygulamayı çalıştırın:

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

Önizleme sürümünde çalışan çerçeveye bağımlı dağıtım

ASP.NET Core {VERSION} (x86) çalışma zamanı site uzantısının yüklenmesini gerektirir.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ( {X.Y} çalışma zamanı sürümüdür)
  2. Uygulamayı çalıştırın: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

64 bit (x64) uygulamayı test etme

Geçerli yayın

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

Önizleme sürümünde çalışan çerçeveye bağımlı dağıtım

ASP.NET Core {VERSION} (x64) çalışma zamanı site uzantısını yüklemeyi gerektirir.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ( {X.Y} çalışma zamanı sürümüdür)
  2. Uygulamayı çalıştırın: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Uygulamadan alınan ve hataları gösteren konsol çıktısı, tüm Kudu konsoluna gönderilir.

ASP.NET Core Modül stdout günlüğü (Azure App Service)

ASP.NET Core Module stdout günlüğü genellikle uygulama olay günlüğünde bulunmayan yararlı hata iletilerini kaydeder. Stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Azure portal sorunları Tanıla ve çöz dikey penceresine gidin.
  2. Sorun kategorisini seçin altında Web uygulaması aşağı düğmesini seçin.
  3. Önerilen çözümler > stdout günlük yeniden yönlendirmeyi etkinleştirmek için, Web.Configdüzenlemek üzere kudu konsolunu açmak için düğmeyi seçin.
  4. Kudu Tanılama konsolunda, klasör Wwwroot yolunu açın > . Listenin altındaki web.config dosyasını açığa çıkarmak için aşağı kaydırın.
  5. web.config dosyasının yanındaki kurşun kalem simgesine tıklayın.
  6. StdoutLogEnabled olarak ayarlayın true ve stdoutLogFile yolunu şu şekilde değiştirin: \\?\%home%\LogFiles\stdout .
  7. Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet ' i seçin.
  8. Uygulamaya bir istek oluşturun.
  9. Azure portalına dönün. GELIŞTIRME araçları alanında Gelişmiş Araçlar dikey penceresini seçin. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  10. Sayfanın üst kısmındaki gezinti çubuğunu kullanarak hata ayıklama konsolu 'nu açın ve cmd' yi seçin.
  11. LogFiles klasörünü seçin.
  12. Değiştirilen sütunu inceleyin ve son değiştirilme tarihiyle stdout günlüğünü düzenlemek için kalem simgesini seçin.
  13. Günlük dosyası açıldığında hata görüntülenir.

Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırak:

  1. Kudu Tanılama Konsolu'nda, > web.config dosyasını açığa çıkarmak için Wwwroot yolu sitesine dönün. Kalem simgesini seçerek web.config dosyasını tekrar açın.
  2. StdoutLogEnabled olarak ayarlayın false .
  3. Dosyayı kaydetmek için Kaydet ' i seçin.

Daha fazla bilgi için bkz. ASP.NET Core Modülü.

Uyarı

Stdout günlüğünü devre dışı bırakma başarısız olması, uygulama veya sunucu hatasına yol açabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için sınır yoktur. Yalnızca uygulama başlatma sorunlarını gidermek için stdout günlüğünü kullanın.

başlangıçtan sonra ASP.NET Core bir uygulamada genel günlüğe kaydetme için, günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlüğe kaydetme kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlüğü sağlayıcıları.

Yavaş veya askıda olan uygulama (Azure App Service)

Bir uygulama bir istek üzerinde yavaş bir şekilde yanıt verdiğinde veya Kilitlenmelerinde, aşağıdaki makalelere bakın:

İzleme kanatları

İzleme dikey pencereleri, konusunda daha önce açıklanan yöntemlere alternatif bir sorun giderme deneyimi sağlar. Bu kanatlar 500 serisi hataları tanılamak için kullanılabilir.

ASP.NET Core uzantılarının yüklü olduğunu doğrulayın. Uzantılar yüklü değilse, bunları el ile yükleyebilirsiniz:

  1. GELIŞTIRME araçları dikey penceresinde Uzantılar dikey penceresini seçin.
  2. ASP.NET Core uzantıları listede görünmelidir.
  3. Uzantılar yüklü değilse, Ekle düğmesini seçin.
  4. listeden ASP.NET Core uzantılarını seçin.
  5. Yasal koşulları kabul etmek için Tamam ' ı seçin.
  6. Uzantı Ekle dikey penceresinde Tamam ' ı seçin.
  7. Bilgilendirici bir açılan ileti, uzantıların başarıyla yüklenip yüklenmediğini gösterir.

Stdout günlüğü etkinleştirilmemişse, şu adımları izleyin:

  1. Azure portal, GELIŞTIRME araçları alanındaki Gelişmiş Araçlar dikey penceresini seçin. Git → düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesi veya penceresinde açılır.
  2. Sayfanın üst kısmındaki gezinti çubuğunu kullanarak hata ayıklama konsolu 'nu açın ve cmd' yi seçin.
  3. Klasörü Wwwroot yoluna açın > ve listenin altındaki web.config dosyasını açığa çıkarmak için aşağı kaydırın.
  4. web.config dosyasının yanındaki kurşun kalem simgesine tıklayın.
  5. StdoutLogEnabled olarak ayarlayın true ve stdoutLogFile yolunu şu şekilde değiştirin: \\?\%home%\LogFiles\stdout .
  6. Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet ' i seçin.

Tanılama günlüğünü etkinleştirmek için ilerleyin:

  1. Azure portal tanılama günlükleri dikey penceresini seçin.
  2. Uygulama günlüğü (dosya sistemi) ve ayrıntılı hata iletileri için bir anahtar seçin . Dikey pencerenin üst kısmındaki Kaydet düğmesini seçin.
  3. Başarısız istek izlemeyi, başarısız Istek olayı arabelleğe alma (FREB) günlüğü olarak da bilinen bir şekilde eklemek için , başarısız istek izleme anahtarını seçin.
  4. Portalda tanılama günlükleri dikey penceresinde hemen listelenen günlük akışı dikey penceresini seçin.
  5. Uygulamaya bir istek oluşturun.
  6. Günlük akışı verileri içinde hatanın nedeni belirtilir.

Sorun giderme tamamlandığında stdout günlüğünü devre dışı bıraktığınızdan emin olun.

Başarısız istek izleme günlüklerini görüntülemek için (FREB günlükleri):

  1. Azure portal sorunları Tanıla ve çöz dikey penceresine gidin.
  2. Kenar çubuğunun Destek Araçları alanından başarısız istek izleme günlüklerini seçin.

Azure App Service konusundaki Web uygulamaları için tanılama günlüğünü etkinleştirme ve Azure 'Daki Web Apps Için uygulama performansı SSS bölümündeki başarısız istek izlemeleri bölümüne bakın: daha fazla bilgi için nasıl yaparım? başarısız istek izlemeyi açın.

Daha fazla bilgi için bkz. Azure App Service Web Apps için tanılama günlüğünü etkinleştirme.

Uyarı

Stdout günlüğünü devre dışı bırakma başarısız olması, uygulama veya sunucu hatasına yol açabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için sınır yoktur.

ASP.NET Core uygulamasında rutin günlük kaydı için, günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlüğe kaydetme kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlüğü sağlayıcıları.

IIS üzerinde sorun giderme

Uygulama olay günlüğü (IIS)

Uygulama olay günlüğüne erişin:

  1. Başlat menüsü açın, Olay Görüntüleyicisi arayın ve Olay Görüntüleyicisi uygulamayı seçin.
  2. Olay Görüntüleyicisi Windows günlükler düğümünü açın.
  3. Uygulama olay günlüğünü açmak için uygulama ' yı seçin.
  4. Hatalı uygulamayla ilişkili hataları arayın. hataların, kaynak sütununda ııs aspnetcore modülünün veya IIS Express aspnetcore modülünün bir değeri vardır.

Uygulamayı komut isteminden çalıştırma

Birçok başlatma hatası, uygulama olay günlüğünde yararlı bilgiler oluşturmaz. Uygulamayı barındırma sisteminde bir komut isteminde çalıştırarak bazı hataların nedenini bulabilirsiniz.

Çerçeveye bağımlı dağıtım

Uygulama, çerçeveye bağımlı bir dağıtımise:

  1. Bir komut isteminde, dağıtım klasörüne gidin ve uygulamanın derlemesini dotnet.exe yürüterek uygulamayı çalıştırın. Aşağıdaki komutta, için uygulama derlemesinin adını yerine koyun <assembly_name> : dotnet .\<assembly_name>.dll .
  2. Uygulamanın konsol çıktısı, herhangi bir hata göstererek konsol penceresine yazılır.
  3. Uygulama için bir istek yaparken hatalar oluşursa, dinlediği ana bilgisayara ve bağlantı noktasına bir istek oluşturun Kestrel . Varsayılan konak ve gönderi kullanarak bir istek yapın http://localhost:5000/ . Uygulama normal olarak Kestrel uç nokta adresinde yanıt verirse, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgili ve uygulamanın içinde daha az olabilir.

Kendi kendine kapsanan dağıtım

Uygulama, kendinden bağımsız bir dağıtımise:

  1. Bir komut isteminde dağıtım klasörüne gidin ve uygulamanın yürütülebilir dosyasını çalıştırın. Aşağıdaki komutta, için uygulama derlemesinin adını yerine koyun <assembly_name> : <assembly_name>.exe .
  2. Uygulamanın konsol çıktısı, herhangi bir hata göstererek konsol penceresine yazılır.
  3. Uygulama için bir istek yaparken hatalar oluşursa, dinlediği ana bilgisayara ve bağlantı noktasına bir istek oluşturun Kestrel . Varsayılan konak ve gönderi kullanarak bir istek yapın http://localhost:5000/ . Uygulama normal olarak Kestrel uç nokta adresinde yanıt verirse, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgili ve uygulamanın içinde daha az olabilir.

ASP.NET Core Modül stdout günlüğü (IIS)

Stdout günlüklerini etkinleştirmek ve görüntülemek için:

  1. Barındırma sistemindeki sitenin dağıtım klasörüne gidin.
  2. Günlükler klasörü yoksa, klasörü oluşturun. MSBuild, dağıtımdaki günlükler klasörünü otomatik olarak oluşturmak için etkinleştirme yönergeleri için, bkz. dizin yapısı konusu.
  3. web.config dosyasını düzenleyin. StdoutLogEnabled olarak ayarlayın true ve stdoutLogFile yolunu Günlükler klasörünü işaret etmek üzere değiştirin (örneğin, .\logs\stdout ). stdout yolunda günlük dosyası adı ön eki bulunur. Günlük oluşturulduğunda zaman damgası, işlem kimliği ve dosya uzantısı otomatik olarak eklenir. stdoutDosya adı ön eki olarak kullanıldığında, tipik bir günlük dosyası stdout_20180205184032_5412. log olarak adlandırılır.
  4. Uygulama havuzunuzun kimliğinin Günlükler klasörü için yazma izinlerine sahip olduğundan emin olun.
  5. Güncelleştirilmiş web.config dosyasını kaydedin.
  6. Uygulamaya bir istek oluşturun.
  7. Günlükler klasörüne gidin. En son stdout günlüğünü bulup açın.
  8. Günlüğü hatalara karşı inceleyin.

Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırak:

  1. web.config dosyasını düzenleyin.
  2. StdoutLogEnabled olarak ayarlayın false .
  3. Dosyayı kaydedin.

Daha fazla bilgi için bkz. ASP.NET Core Modülü.

Uyarı

Stdout günlüğünü devre dışı bırakma başarısız olması, uygulama veya sunucu hatasına yol açabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyası sayısı için sınır yoktur.

ASP.NET Core uygulamasında rutin günlük kaydı için, günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlüğe kaydetme kitaplığı kullanın. Daha fazla bilgi için bkz. üçüncü taraf günlüğü sağlayıcıları.

Geliştirici özel durum sayfasını etkinleştir

ASPNETCORE_ENVIRONMENT Ortam değişkeni , uygulamayı geliştirme ortamında çalıştırmak için web.configeklenebilir. Ortam, ana bilgisayar Oluşturucu 'da uygulama başlangıcında geçersiz kılınmadığı sürece UseEnvironment , ortam değişkenini ayarlamak, uygulama çalıştırıldığında Geliştirici özel durum sayfasının görünmesine izin verir.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

Ortam değişkeninin ayarlanması ASPNETCORE_ENVIRONMENT yalnızca Internet 'e açık olmayan hazırlama ve test etme sunucularında kullanılması önerilir. Sorun giderme işleminden sonra web.config dosyasından ortam değişkenini kaldırın. web.config ortam değişkenlerini ayarlama hakkında daha fazla bilgi Için, Aspnetcore 'un EnvironmentVariables alt öğesibölümüne bakın.

Uygulamadan veri alma

Bir uygulamanın isteklere yanıt verme yeteneği varsa, Terminal satır içi ara yazılımı kullanarak uygulamadan istek, bağlantı ve ek veri alın. Daha fazla bilgi ve örnek kod için bkz ASP.NET Core projelerinde sorun giderme ve hata ayıklama ..

Yavaş veya askıda olan uygulama (IIS)

Kilitlenme dökümü , sistem belleğinin bir anlık görüntüsüdür ve uygulama kilitlenmesinin, başlatma hatasının veya yavaş uygulamanın nedenini belirlemenize yardımcı olabilir.

Uygulama kilitleniyor veya bir özel durumla karşılaşırsa

Windows Hata Bildirimi bir döküm edinin ve çözümleyin (WER):

  1. 'de kilitlenme dökümü dosyalarını tutmak için bir klasör c:\dumps oluşturun. Uygulama havuzunun klasöre yazma erişimi olması gerekir.

  2. EnableDumps PowerShell betiği çalıştırın:

  3. Uygulamayı kilitlenmeye neden olan koşullar altında çalıştırın.

  4. Kilitlenme gerçekleştikten sonra DisableDumps PowerShell betiği çalıştırın:

Uygulama kilitleniyor ve döküm toplama işlemi tamamlandıktan sonra uygulamanın normal şekilde sonlandırılmalarına izin verilir. PowerShell betiği, WER'yi uygulama başına en fazla beş döküm topacak şekilde yapılandırıyor.

Uyarı

Kilitlenme dökümleri büyük miktarda disk alanı (her biri birkaç gigabayta kadar) kaplar.

Uygulama askıda oluyor, başlatma sırasında başarısız oluyor veya normal çalışıyor

Uygulama yanıt vermese de yanıt vermese de kilitlenmezse, başlatma sırasında başarısız olursa veya normal şekilde çalıştırılacaksa bkz. Kullanıcı Modu Döküm Dosyaları: Döküm üretmek için uygun bir araç seçmek için En İyi Aracı Seçme.

Döküm analizi

Döküm, çeşitli yaklaşımlar kullanılarak analiz edilir. Daha fazla bilgi için bkz. User-Mode Döküm Dosyasını Çözümleme.

Paket önbelleklerini temizleme

Geliştirme makinesine yükseltmeden veya uygulama içindeki paket sürümlerini .NET Core SDK bir uygulamanın çalışması başarısız olabilir. Bazı durumlarda, büyük yükseltmeler yaparken tutarlı paketler bir uygulamayı bozabilirsiniz. Bu sorunların çoğu şu yönergelere uyularak düzeltilmiştir:

  1. Bin ve obj klasörlerini silin.

  2. dotnet nuget locals komutunu yürüterek paket önbelleklerini temizleyin ;komut kabuğundan temizleyin.

    Paket önbelleklerini temizleme,nuget.exe aracıyla ve komutu yürüterek de gerçek nuget locals all -clear olabilir. nuget.exe, Windows masaüstü işletim sistemiyle birlikte paketlenmiş bir yükleme değildir ve NuGet web sitesinden ayrı olarak alınmalıdır.

  3. Projeyi geri yükleme ve yeniden oluşturma.

  4. Uygulamayı yeniden dağıtmadan önce sunucu üzerinde dağıtım klasöründeki tüm dosyaları silin.

Ek kaynaklar

Azure belgeleri

Visual Studio belgeleri

Visual Studio Code belgeleri