Azure App Service ve IIS'de ASP.NET Core sorunlarını giderme
Bu makalede, yaygın uygulama başlatma hataları hakkında bilgi ve bir uygulama Azure Uygulaması Hizmetine veya IIS'ye dağıtıldığında hataları tanılama yönergeleri sağlanır:
Uygulama başlatma hataları
Yaygın başlangıç HTTP durum kodu senaryolarını açıklar.
Azure Uygulaması Hizmetinde sorun giderme
Azure Uygulaması Hizmetine dağıtılan uygulamalar için sorun giderme önerileri sağlar.
IIS üzerinde sorun giderme
IIS'ye dağıtılan veya IIS Express'te yerel olarak çalıştırılan uygulamalar için sorun giderme önerileri sağlar. Bu kılavuz hem Windows Server hem de Windows masaüstü dağıtımları için geçerlidir.
Paket önbelleklerini temizleme
Tutarsız paketler büyük yükseltmeler gerçekleştirirken veya paket sürümlerini değiştirirken bir uygulamayı bozduğunda ne yapacağını açıklar.
Ek Kaynaklar
Ek sorun giderme konularını listeler.
Uygulama başlatma hataları
Visual Studio'da ASP.NET Core projesi varsayılan sunucusudur Kestrel. Visual Studio, IIS Express kullanacak şekilde yapılandırılabilir. A 502.5 - İşlem Hatası veya 500.30 - IIS Express ile yerel olarak hata ayıklarken oluşan Başlatma Hatası , bu konudaki öneriler 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.
Hataya genellikle aşağıdaki senaryolardan herhangi birini içeren barındırma sistemindeki bozuk bir dağıtım neden olur:
- Uygulama barındırma sistemindeki yanlış klasöre dağıtıldı.
- Dağıtım işlemi, uygulamanın tüm dosya ve klasörlerini barındırma sistemindeki dağıtım klasörüne taşıyamadı.
- Web.config dosyası dağıtımda eksik veya web.config dosyası içeriği yanlış biçimlendirilmiş.
Aşağıdaki adımları gerçekleştirin:
- Barındırma sistemindeki dağıtım klasöründeki tüm dosya ve klasörleri silin.
- 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 onaylayın.
- Azure Uygulaması Hizmetinde barındırırken, uygulamanın klasöre
D:\home\site\wwwroot
dağıtıldığını onaylayın. - Uygulama IIS tarafından barındırıldığında, uygulamanın IIS Yöneticisi'nin Temel Ayarları'nda gösterilen IIS Fiziksel yoluna dağıtıldığını onaylayın.
- Barındırma sistemindeki 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ığını onaylayı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. IIS için ASP.NET Çekirdek Modülü (ANCM).
500 İç Sunucu Hatası
Uygulama başlatılır, ancak bir hata sunucunun isteği karşılamasını engeller.
Bu hata, başlatma sırasında veya yanıt oluşturulurken uygulamanın kodunda oluşur. Yanıt içerik içermeyebilir veya yanıt tarayıcıda 500 İç Sunucu Hatası olarak görünebilir. Uygulama Olay Günlüğü genellikle uygulamanın normal şekilde başlatıldığını belirtir. Sunucunun perspektifinden bakıldığında bu doğrudur. Uygulama başladı, 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 Module stdout günlüğünü etkinleştirin.
Bu hata, .NET Core Barındırma Paketi yüklenmediğinde veya bozuk olduğunda da oluşabilir. .NET Core Barındırma Paketinin (IIS için) veya Visual Studio'nun (IIS Express için) yüklenmesi veya onarılması sorunu çözebilir.
500.0 İşlem İçi İşleyici Yükleme Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
Çekirdek Modül bileşenleri ASP.NET yüklenirken bilinmeyen bir hata oluştu. Aşağıdaki eylemlerden birini uygulayın:
- Microsoft Desteği ile iletişime geçin (Geliştirici Araçları'nı ve ardından ASP.NET Core'ı seçin).
- Stack Overflow hakkında bir soru sorun.
- GitHub depomuzda bir sorun oluşturun.
500.30 İşlem İçi Başlatma Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Core Modülü işlem sırasında .NET Core CLR'yi başlatmayı dener, ancak başlatılamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve ASP.NET Çekirdek Modülü stdout günlüğündeki girdilerden belirlenebilir.
Yaygın hata koşulları:
- ASP.NET Core paylaşılan çerçevesinin mevcut olmayan bir sürümünü hedeflemesi nedeniyle uygulama yanlış yapılandırılmış. Hedef makinede ASP.NET Core paylaşılan çerçevesinin hangi sürümlerinin yüklü olduğunu denetleyin.
- Azure Key Vault'un kullanılması, Key Vault için izinlerin olmaması. Doğru izinlerin verildiğinden emin olmak için hedeflenen Key Vault'taki erişim ilkelerini denetleyin.
500.31 ANCM Yerel Bağımlılıkları Bulamadı
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Core Modülü.NET Core çalışma zamanını işlem içinde başlatmayı dener, ancak başlatılamaz. Bu başlatma hatasının en yaygın nedeni, veya Microsoft.AspNetCore.App
çalışma zamanının Microsoft.NETCore.App
yüklenmemesidir. Uygulama ASP.NET Core 3.0 hedefine dağıtıldıysa ve bu sürüm makinede yoksa, bu hata oluşur. Örnek bir hata iletisi aşağıda verilmiştir:
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ü 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 bulunan bir .NET Core sürümünü hedeflemek için değiştirin.
- Uygulamayı bağımsız dağıtım olarak yayımlayın.
Geliştirme sırasında çalışırken ( 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üğü'nde de bulunur.
500.32 ANCM Dll Yüklenemedi
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
Bu hatanın en yaygın nedeni, uygulamanın uyumsuz bir işlemci mimarisi için yayımlanmasıdır. Çalışan işlemi 32 bit uygulama olarak çalışıyorsa ve uygulama hedef 64 bit olarak yayımlandıysa, bu hata oluşur.
Bu hatayı düzeltmek için:
- Çalışan işlemiyle aynı işlemci mimarisi için uygulamayı yeniden yayımlayın.
- Uygulamayı çerçeveye bağımlı dağıtım olarak yayımlayın.
500.33 ANCM İstek İşleyicisi Yükleme Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
Uygulama çerçeveye Microsoft.AspNetCore.App
başvurmadı. yalnızca çerçeveyi Microsoft.AspNetCore.App
hedefleyen uygulamalar ASP.NET Çekirdek Modülü tarafından barındırılabilir.
Bu hatayı düzeltmek için uygulamanın çerçeveyi hedeflediğini Microsoft.AspNetCore.App
onaylayın. .runtimeconfig.json
Uygulamanın hedeflediği çerçeveyi doğrulamak için öğesini denetleyin.
500.34 ANCM Karma Barındırma Modelleri Desteklenmiyor
Çalışan işlemi hem işlem içi hem de işlem dışı bir uygulamayı aynı işlemde çalıştıramaz.
Bu hatayı düzeltmek için uygulamaları ayrı IIS uygulama havuzlarında çalıştırın.
500.35 ANCM Aynı İşlemde Birden Çok İşlem İçi Uygulama
Çalışan işlemi aynı işlemde birden çok işlem içi 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ışı İşleyici Yük Hatası
aspnetcorev2_outofprocess.dll işlem dışı istek işleyicisi, aspnetcorev2.dll dosyasının yanında değildir. Bu, ASP.NET Çekirdek Modülünün bozuk yüklemesini gösterir.
Bu hatayı düzeltmek için .NET Core Barındırma Paketi (IIS için) veya Visual Studio (IIS Express için) yüklemesini onarın.
500.37 ANCM Başlangıç Süresi Sınırı İçinde Başlatılamadı
ANCM, sağlanan başlangıç süresi sınırı içinde başlatılamadı. Varsayılan olarak, zaman aşımı 120 saniyedir.
Bu hata, aynı makinede çok sayıda uygulama başlatılırken oluşabilir. Başlatma sırasında sunucuda CPU/Bellek kullanımı artışlarını denetleyin. Birden çok uygulamanın başlangıç işlemini aşamalı olarak gerçekleştirmeniz gerekebilir.
500.38 ANCM Uygulama DLL'i 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 modeli kullanılarak tek dosyalı yürütülebilir dosya olarak paketlenmiş bir uygulama barındırılırken oluşur. İşlem içi model, ANCM'nin .NET Core uygulamasını mevcut IIS işlemine yüklemesini gerektirir. Bu senaryo tek dosyalı dağıtım modeli tarafından desteklenmez. Bu hatayı düzeltmek için uygulamanın proje dosyasında aşağıdaki yaklaşımlardan birini kullanın:
- MSBuild özelliğini
false
olarak ayarlayarak tek dosyalı yayımlamayıPublishSingleFile
devre dışı bırakın. - MSBuild özelliğini olarak ayarlayarak işlem dışı barındırma modeline
AspNetCoreHostingModel
OutOfProcess
geçin.
502.5 İşlem Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Çekirdek Modülü çalışan işlemini başlatmayı dener ancak başlatılamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve ASP.NET Çekirdek Modülü stdout günlüğündeki girdilerden belirlenebilir.
Yaygın bir hata koşulu, ASP.NET Core paylaşılan çerçevesinin mevcut olmayan bir sürümünü hedefleme nedeniyle uygulamanın yanlış yapılandırılmasıdır. Hedef makinede ASP.NET Core paylaşılan çerçevesinin hangi sürümlerinin yüklü olduğunu denetleyin. Paylaşılan çerçeve, makineye yüklenen ve gibi Microsoft.AspNetCore.App
bir meta paket tarafından başvurulan derleme kümesidir (.dll dosyaları). Meta paket başvurusu gereken en düşük sürümü belirtebilir. 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ğinden uygulama başlatılamadı.
Bu hata, yayımlanan uygulama ile w3wp/iisexpress işlemi arasında bir bitlik uyumsuzluğu olduğunda oluşur.
Uygulama havuzunun 32 bit ayarının doğru olduğunu onaylayın:
- IIS Yöneticisi'nin Uygulama Havuzları'nda uygulama havuzunu seçin.
- Eylemler panelinde Uygulama Havuzunu Düzenle'nin altında Gelişmiş Ayarlar'ı seçin.
- 32 Bit Uygulamaları Etkinleştir'i ayarlayın:
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
True
ayarlayın. - 64 bit (x64) bir uygulama dağıtıyorsanız, değerini olarak
False
ayarlayın.
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
Proje dosyasındaki bir <Platform>
MSBuild özelliği ile uygulamanın yayımlanan bitliği arasında çakışma olmadığını onaylayın.
Uygulama başlatılamadı (ErrorCode '0x800701b1')
EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/3/ROOT', ErrorCode '0x800701b1'.
Bir Windows Hizmeti yüklenemediği için uygulama başlatılamadı.
Etkinleştirilmesi gereken yaygın hizmetlerden biri "null" hizmetidir.
Aşağıdaki komut Windows Hizmetini etkinleştirir null
:
sc.exe start null
Bağlantı sıfırlama
Üst bilgiler gönderildikten sonra bir hata oluşursa, hata oluştuğunda sunucunun 500 İç Sunucu Hatası göndermesi çok geç olur. Bu durum genellikle bir yanıt için karmaşık nesnelerin seri hale getirilmesi sırasında bir hata oluştuğunda oluşur. Bu tür bir hata, istemcide bağlantı sıfırlama hatası olarak görünür. Uygulama günlüğü bu tür hataları gidermeye yardımcı olabilir.
Varsayılan başlangıç sınırları
ASP.NET Çekirdek Modülü, varsayılan startupTimeLimit değeri 120 saniye ile yapılandırılır. Varsayılan değerde bırakıldığında, modülün işlem hatasını günlüğe kaydedebilmesi için uygulamanın başlatılması iki dakika kadar sürebilir. Modülü yapılandırma hakkında bilgi için bkz . aspNetCore öğesinin öznitelikleri.
Azure Uygulaması Hizmetinde sorun giderme
Önemli
Azure Uygulaması Hizmeti ile ASP.NET Core önizleme sürümleri
ASP.NET Core önizleme sürümleri varsayılan olarak Azure Uygulaması Hizmetine dağıtılmaz. ASP.NET Core önizleme sürümünü kullanan bir uygulamayı barındırmak için bkz. Azure Uygulaması Hizmetine ASP.NET Core önizleme sürümünü dağıtma.
Azure Uygulaması Services Günlük akışı
Azure Uygulaması Hizmetleri Günlüğü, günlüğe kaydetme bilgilerini gerçekleşirken akışla aktarır. Akış günlüklerini görüntülemek için:
- Azure portalında uygulamayı App Services'te açın.
- Sol bölmede App Service Günlüklerini İzleme'ye >gidin.
- Web Sunucusu Günlüğü için Dosya Sistemi'ne tıklayın. İsteğe bağlı olarak Uygulama günlüğünü etkinleştirin.
- Sol bölmede İzleme>Günlüğü akışı'na gidin ve uygulama günlükleri'ni veya Web Sunucusu Günlükleri'ni seçin.
Aşağıdaki görüntüler uygulama günlüklerinin çıkışını gösterir:
Akış günlükleri biraz gecikme süresine sahiptir ve hemen görüntülenmeyebilir.
Uygulama Olay Günlüğü (Azure Uygulaması Hizmeti)
Uygulama Olay Günlüğü'ne erişmek için Azure portalındaki Sorunları tanılama ve çözme dikey penceresini kullanın:
- Azure portalında uygulamayı App Services'te açın.
- Sorunları tanılama ve çözme’yi seçin.
- Tanılama Araçları başlığını seçin.
- Destek Araçları'nın altında Uygulama Olayları düğmesini seçin.
- Kaynak sütununda IIS AspNetCoreModule veya IIS AspNetCoreModule V2 girdisi tarafından sağlanan en son hatayı inceleyin.
Sorunları tanılama ve çözme dikey penceresini kullanmanın bir alternatifi, Uygulama Olay Günlüğü dosyasını kudu kullanarak doğrudan incelemektir:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- LogFiles klasörünü açın.
- Dosyanın yanındaki
eventlog.xml
kalem simgesini seçin. - Günlüğü inceleyin. En son olayları görmek için günlüğün en altına kaydırın.
Uygulamayı Kudu konsolunda çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. Hatayı bulmak için uygulamayı Kudu Uzaktan Yürütme Konsolu'nda çalıştırabilirsiniz:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
32 bit (x86) bir uygulamayı test edin
Geçerli sürüm
cd d:\home\site\wwwroot
- 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.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32
({X.Y}
çalışma zamanı sürümüdür)- 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) uygulamasını test edin
Geçerli sürüm
- Uygulama 64 bit (x64) çerçeveye bağımlı bir dağıtımsa:
cd D:\Program Files\dotnet
- Uygulamayı çalıştırın:
dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
- Uygulama bağımsız bir dağıtımsa:
cd D:\home\site\wwwroot
- 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ünde çalışan çerçeveye bağımlı dağıtım
ASP.NET Core {VERSION} (x64) Çalışma Zamanı site uzantısının yüklenmesini gerektirir.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64
({X.Y}
çalışma zamanı sürümüdür)- 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 Module stdout günlüğü (Azure Uygulaması Hizmeti)
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir sınır yoktur. Uygulama başlatma sorunlarını gidermek için yalnızca stdout günlüğünü kullanın.
ASP.NET Core uygulamasında başlangıçtan sonra genel 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 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:
- Azure Portalı'nda web uygulamasına gidin.
- App Service dikey penceresinde, arama kutusuna kudu yazın.
- Gelişmiş Araçlar>Git'i seçin.
- Hata ayıklama konsolu > CMD'lerini seçin.
- siteye/wwwroot adresine gidin
- Web.config dosyasını düzenlemek için kalem simgesini seçin.
- öğesinde
<aspNetCore />
Kaydet'i ayarlayınstdoutLogEnabled="true"
ve seçin.
ayarlayarak stdoutLogEnabled="false"
sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
ASP.NET Çekirdek Modülü hata ayıklama günlüğü (Azure Uygulaması Hizmeti)
ASP.NET Çekirdek Modülü hata ayıklama günlüğü, ASP.NET Core Modülü'nden ek ve daha derin günlüğe kaydetme sağlar. stdout günlüklerini etkinleştirmek ve görüntülemek için:
- 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 için Gelişmiş tanılama günlükleri'ndeki yönergeleri izleyin. Uygulamayı yeniden dağıtın.
- Gelişmiş tanılama günlüklerinde gösterileni
<handlerSettings>
Kudu konsolunu kullanarak canlı uygulamanın web.config dosyasına ekleyin:- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın. Kalem düğmesini seçerek web.config dosyasını düzenleyin.
<handlerSettings>
Gelişmiş tanılama günlüklerinde gösterildiği gibi bölümü ekleyin. Kaydet düğmesini seçin.
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın. aspnetcore-debug.log dosyası için bir yol sağlamadıysanız, dosya listede görünür. Bir yol sağladıysanız günlük dosyasının konumuna gidin.
- Günlük dosyasını, dosya adının yanındaki kalem düğmesiyle açın.
Sorun giderme tamamlandığında hata ayıklama günlüğünü devre dışı bırakın:
Gelişmiş hata ayıklama günlüğünü devre dışı bırakmak için aşağıdakilerden birini gerçekleştirin:
<handlerSettings>
web.config dosyasından yerel olarak öğesini kaldırın ve uygulamayı yeniden dağıtın.- Web.config dosyasını düzenlemek ve bölümü kaldırmak için Kudu konsolunu
<handlerSettings>
kullanın. Dosyayı kaydedin.
Daha fazla bilgi için bkz . ASP.NET Çekirdek Modülü ile günlük oluşturma ve yeniden yönlendirme.
Uyarı
Hata ayıklama günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu sınırı yoktur. Yalnızca uygulama başlatma sorunlarını gidermek için hata ayıklama günlüğünü kullanın.
ASP.NET Core uygulamasında başlangıçtan sonra genel 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 yanıt vermeyen uygulama (Azure Uygulaması Hizmeti)
Bir uygulama yavaş yanıt veriyorsa veya bir isteğe yanıt vermiyorsa bkz. Azure Uygulaması Hizmeti'nde yavaş web uygulaması performans sorunlarını giderme.
İzleme dikey pencereleri
İzleme dikey pencereleri, konunun önceki bölümlerinde açıklanan yöntemlere alternatif bir sorun giderme deneyimi sağlar. Bu dikey değişkenler 500 serisi hataları tanılamak için kullanılabilir.
ASP.NET Çekirdek Uzantıları'nın yüklendiğini onaylayın. Uzantılar yüklü değilse el ile yükleyin:
- GELİrME ARAÇLARI dikey penceresinde Uzantılar dikey penceresini seçin.
- ASP.NET Çekirdek Uzantıları listede görünmelidir.
- Uzantılar yüklü değilse Ekle düğmesini seçin.
- Listeden ASP.NET Çekirdek Uzantıları'nı seçin.
- Yasal koşulları kabul etmek için Tamam’ı seçin.
- Uzantı ekle dikey penceresinde Tamam'ı seçin.
- Uzantıların ne zaman başarıyla yüklendiğini gösteren bilgi amaçlı bir açılır ileti.
stdout günlüğü etkinleştirilmediyse şu adımları izleyin:
- Azure portalında, GELİşTİrME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresini seçin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın ve listenin en altındaki web.config dosyasını görüntülemek için aşağı kaydırın.
- Web.config dosyasının yanındaki kalem simgesine tıklayın.
- stdoutLogEnabled değerini olarak ayarlayın ve stdoutLogFile yolunu olarak değiştirin:
\\?\%home%\LogFiles\stdout
.true
- Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet'i seçin.
Tanılama günlüğünü etkinleştirmeye devam edin:
- Azure portalında Tanılama günlükleri dikey penceresini seçin.
- Uygulama Günlüğü (Dosya Sistemi) ve Ayrıntılı hata iletileri için Açık anahtarını seçin. Dikey penceresinin üst kısmındaki Kaydet düğmesini seçin.
- Başarısız İstek Olayı Arabelleğe Alma (FREB) günlüğü olarak da bilinen başarısız istek izlemeyi eklemek için Başarısız istek izleme için Açık anahtarını seçin.
- Portaldaki Tanılama günlükleri dikey penceresinin hemen altında listelenen Günlük akışı dikey penceresini seçin.
- Uygulamaya bir istekte bulunın.
- Günlük akışı verilerinin içinde hatanın nedeni belirtilir.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakdığınızdan emin olun.
Başarısız istek izleme günlüklerini (FREB günlükleri) görüntülemek için:
- Azure portalında Sorunları tanılama ve çözme dikey penceresine gidin.
- Kenar çubuğunun DESTEK ARAÇLARI alanından Başarısız İstek İzleme Günlükleri'ni seçin.
Daha fazla bilgi için Azure Uygulaması Hizmetinde 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 Uygulamaları için Uygulama performansı SSS: Nasıl yaparım? başarısız istek izlemeyi açma? bölümüne bakın.
Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti'nde web uygulamaları için tanılama günlüğünü etkinleştirme.
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ü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:
- Başlat menüsü açın, Olay Görüntüleyicisi arayın ve Olay Görüntüleyicisi uygulamasını seçin.
- Olay Görüntüleyicisi'da Windows Günlükleri düğümünü açın.
- Uygulama Olay Günlüğü'nü açmak için Uygulama'ya tıklayın.
- Başarısız uygulamayla ilişkili hataları arayın. Hatalar, Kaynak sütununda IIS AspNetCore Modülü veya IIS Express AspNetCore Modülü değerine sahiptir.
Uygulamayı komut isteminde çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. 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ımsa:
- Komut isteminde dağıtım klasörüne gidin ve uygulamanın derlemesini dotnet.exe ile yürüterek uygulamayı çalıştırın. Aşağıdaki komutta, assembly_name> için <uygulama derlemesinin adını kullanın:
dotnet .\<assembly_name>.dll
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
Bağımsız dağıtım
Uygulama bağımsız bir dağıtımsa:
- 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, assembly_name> için <uygulama derlemesinin adını kullanın:
<assembly_name>.exe
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
ASP.NET Core Module stdout günlüğü (IIS)
stdout günlüklerini etkinleştirmek ve görüntülemek için:
- Barındırma sistemindeki sitenin dağıtım klasörüne gidin.
- Günlükler klasörü yoksa klasörü oluşturun. MSBuild'in dağıtımda günlükler klasörünü otomatik olarak oluşturmasını etkinleştirme yönergeleri için Dizin yapısı konusuna bakın.
- web.config dosyasını düzenleyin. stdoutLogEnabled olarak ayarlayın ve stdoutLogFile yolunu logs klasörüne işaret edecek şekilde değiştirin (örneğin,
.\logs\stdout
).true
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. Dosyastdout
adı ön eki olarak kullanıldığında, tipik bir günlük dosyası stdout_20180205184032_5412.log olarak adlandırılır. - Uygulama havuzunuzun identity günlükler klasörüne yazma izinlerine sahip olduğundan emin olun.
- Güncelleştirilmiş web.config dosyasını kaydedin.
- Uygulamaya bir istekte bulunın.
- Günlükler klasörüne gidin. En son stdout günlüğünü bulun ve açın.
- Hatalar için günlüğü inceleyin.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın:
- web.config dosyasını düzenleyin.
- stdoutLogEnabled değerini olarak
false
ayarlayın. - Dosyayı kaydedin.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
ASP.NET Çekirdek Modülü hata ayıklama günlüğü (IIS)
ASP.NET Çekirdek Modülü hata ayıklama günlüğünü etkinleştirmek için uygulamanın web.config dosyasına aşağıdaki işleyici 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 identity konuma yazma izinlerine sahip olduğunu onaylayın.
Daha fazla bilgi için bkz . ASP.NET Çekirdek Modülü ile 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 ortamında çalıştırmak için web.config'e eklenebilir. Konak oluşturucusunda uygulama başlangıcında UseEnvironment
ortam geçersiz kılınmadığı sürece ortam değişkeninin ayarlanması, uygulama çalıştırıldığında Geliştirici Özel Durum Sayfası'nın görüntülenmesine olanak tanır.
<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 ASPNETCORE_ENVIRONMENT
ayarlanması yalnızca İnternet'e sunulmamış hazırlama ve test sunucularında kullanılması önerilir. Sorun giderme sonrasında web.config dosyasından ortam değişkenini kaldırın. web.config içinde ortam değişkenlerini ayarlama hakkında bilgi için bkz. aspNetCore'un environmentVariables alt öğesi.
Bir uygulamadan veri alma
Bir uygulama isteklere yanıt verebilen bir uygulamaysa, terminal satır içi ara yazılımını kullanarak uygulamadan istek, bağlantı ve ek veriler alın. Daha fazla bilgi ve örnek kod için bkz . Çekirdek projelerde sorun giderme ve hata ayıklama ASP.NET.
Yavaş veya yanıt vermeyen uygulama (IIS)
Kilitlenme bilgi dökümü, sistem belleğinin anlık görüntüsüdür ve uygulama kilitlenmesinin, başlatma hatasının veya yavaş uygulamanın nedenini belirlemeye yardımcı olabilir.
Uygulama kilitleniyor veya bir özel durumla karşılaşıyor
Windows Hata Bildirimi (WER) dökümünü alma ve analiz etme:
kilitlenme dökümü dosyalarının konumunda
c:\dumps
tutulacağı bir klasör oluşturun. Uygulama havuzunun klasöre yazma erişimi olmalıdır.EnableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\EnableDumps w3wp.exe c:\dumps
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\EnableDumps dotnet.exe c:\dumps
Kilitlenmeye neden olan koşullar altında uygulamayı çalıştırın.
Kilitlenme oluştuktan sonra DisableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\DisableDumps w3wp.exe
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\DisableDumps dotnet.exe
Bir uygulama kilitlenip döküm toplama işlemi tamamlandıktan sonra uygulamanın normal şekilde sonlandırılmasına izin verilir. PowerShell betiği, WER'yi uygulama başına en fazla beş döküm toplayacak şekilde yapılandırır.
Uyarı
Kilitlenme bilgi dökümleri büyük miktarda disk alanı kaplayabilir (her biri birkaç gigabayta kadar).
Uygulama yanıt vermiyor, başlatma sırasında başarısız oluyor veya normal şekilde çalışıyor
Bir uygulama yanıt vermeyi durdurduğunda ancak kilitlenmediğinde, başlatma sırasında başarısız olduğunda veya normal şekilde çalıştığında bkz . Kullanıcı Modu Döküm Dosyaları: Dökümü oluşturmak için uygun bir araç seçmek için En İyi Aracı Seçme.
Dökümü analiz etme
Döküm, çeşitli yaklaşımlar kullanılarak analiz edilebilir. Daha fazla bilgi için bkz . Kullanıcı Modu Döküm Dosyasını Çözümleme.
Paket önbelleklerini temizleme
Çalışan bir uygulama, geliştirme makinesindeki .NET Core SDK'sını yükselttikten veya uygulama içindeki paket sürümlerini değiştirdikten hemen sonra başarısız olabilir. Bazı durumlarda, tutarsız paketler ana yükseltmeler yaparken bir uygulamayı bozabilir. Bu sorunların çoğu şu yönergeleri izleyerek düzeltilebilir:
Bölme ve obj klasörlerini silin.
dotnet nuget locals all --clear komutunu komut kabuğundan yürüterek paket önbelleklerini temizleyin .
Paket önbelleklerini temizleme işlemi, nuget.exe aracıyla ve komutu
nuget locals all -clear
yürütülerek de gerçekleştirilebilir. nuget.exe, Windows masaüstü işletim sistemiyle paketlenmiş bir yükleme değildir ve NuGet web sitesinden ayrı olarak alınmalıdır.Projeyi geri yükleyin ve yeniden oluşturun.
Uygulamayı yeniden dağıtmadan önce sunucudaki dağıtım klasöründeki tüm dosyaları silin.
Ek kaynaklar
- Visual Studio ile .NET ve ASP.NET Core kaynak kodunda hata ayıklama
- ASP.NET Core projelerinde sorun giderme ve hata ayıklama
- ASP.NET Core ile Azure App Service ve IIS için yaygın hataları giderme
- ASP.NET Core hatalarını işleme
- IIS için ASP.NET Core Modülü (ANCM)
Azure belgeleri
- ASP.NET Core için Application Insights
- Visual Studio kullanarak Azure Uygulaması Hizmetinde web uygulaması sorunlarını giderme bölümünün uzaktan hata ayıklama web uygulamaları bölümü
- Azure App Service tanılama genel bakış
- Nasıl Yapılır: Azure App Service’te Uygulamaları İzleme
- Visual Studio kullanarak Azure Uygulaması Hizmeti'nde web uygulaması sorunlarını giderme
- Azure web uygulamalarınızda "502 hatalı ağ geçidi" ve "503 hizmet kullanılamıyor" HTTP hatalarını giderme
- Azure App Service web uygulamasında yavaş performans sorunlarını giderme
- Azure'da Web Apps için uygulama performansı hakkında SSS
- Azure Web App korumalı alanı (App Service çalışma zamanı yürütme sınırlamaları)
Visual Studio belgeleri
- Visual Studio 2017'de Azure'da IIS üzerinde Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio 2017'de Uzak IIS Bilgisayarında Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio kullanarak hata ayıklamayı öğrenin
Visual Studio Code belgeleri
Bu makalede, yaygın uygulama başlatma hataları hakkında bilgi ve bir uygulama Azure Uygulaması Hizmetine veya IIS'ye dağıtıldığında hataları tanılama yönergeleri sağlanır:
Uygulama başlatma hataları
Yaygın başlangıç HTTP durum kodu senaryolarını açıklar.
Azure Uygulaması Hizmetinde sorun giderme
Azure Uygulaması Hizmetine dağıtılan uygulamalar için sorun giderme önerileri sağlar.
IIS üzerinde sorun giderme
IIS'ye dağıtılan veya IIS Express'te yerel olarak çalıştırılan uygulamalar için sorun giderme önerileri sağlar. Bu kılavuz hem Windows Server hem de Windows masaüstü dağıtımları için geçerlidir.
Paket önbelleklerini temizleme
Tutarsız paketler büyük yükseltmeler gerçekleştirirken veya paket sürümlerini değiştirirken bir uygulamayı bozduğunda ne yapacağını açıklar.
Ek Kaynaklar
Ek sorun giderme konularını listeler.
Uygulama başlatma hataları
Visual Studio'da bir ASP.NET Core projesi hata ayıklama sırasında iis express barındırma olarak varsayılan olarak kullanılır. A 502.5 - İşlem Hatası veya 500.30 - Yerel olarak hata ayıklama sırasında oluşan Başlatma Hatası bu konudaki öneriler 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.
Hataya genellikle aşağıdaki senaryolardan herhangi birini içeren barındırma sistemindeki bozuk bir dağıtım neden olur:
- Uygulama barındırma sistemindeki yanlış klasöre dağıtıldı.
- Dağıtım işlemi, uygulamanın tüm dosya ve klasörlerini barındırma sistemindeki dağıtım klasörüne taşıyamadı.
- Web.config dosyası dağıtımda eksik veya web.config dosyası içeriği yanlış biçimlendirilmiş.
Aşağıdaki adımları gerçekleştirin:
- Barındırma sistemindeki dağıtım klasöründeki tüm dosya ve klasörleri silin.
- 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 onaylayın.
- Azure Uygulaması Hizmetinde barındırırken, uygulamanın klasöre
D:\home\site\wwwroot
dağıtıldığını onaylayın. - Uygulama IIS tarafından barındırıldığında, uygulamanın IIS Yöneticisi'nin Temel Ayarları'nda gösterilen IIS Fiziksel yoluna dağıtıldığını onaylayın.
- Barındırma sistemindeki 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ığını onaylayı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. IIS için ASP.NET Çekirdek Modülü (ANCM).
500 İç Sunucu Hatası
Uygulama başlatılır, ancak bir hata sunucunun isteği karşılamasını engeller.
Bu hata, başlatma sırasında veya yanıt oluşturulurken uygulamanın kodunda oluşur. Yanıt içerik içermeyebilir veya yanıt tarayıcıda 500 İç Sunucu Hatası olarak görünebilir. Uygulama Olay Günlüğü genellikle uygulamanın normal şekilde başlatıldığını belirtir. Sunucunun perspektifinden bakıldığında bu doğrudur. Uygulama başladı, 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 Module stdout günlüğünü etkinleştirin.
Bu hata, .NET Core Barındırma Paketi yüklenmediğinde veya bozuk olduğunda da oluşabilir. .NET Core Barındırma Paketinin (IIS için) veya Visual Studio'nun (IIS Express için) yüklenmesi veya onarılması sorunu çözebilir.
500.0 İşlem İçi İşleyici Yükleme Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmı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. Aşağıdakileri denetleyin:
- Uygulama, Microsoft.AspNetCore.Server.IIS NuGet paketini veya Microsoft.AspNetCore.App meta paketini hedefler.
- Uygulamanın hedeflediğini ASP.NET Core paylaşılan çerçevesinin sürümü hedef makineye yüklenir.
500.0 İşlem Dışı İşleyici Yük Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Çekirdek 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 oluyor. Uygulama başlatılmıyor.
ASP.NET Çekirdek Modülü çalışan işlemini başlatmayı dener ancak başlatılamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve ASP.NET Çekirdek Modülü stdout günlüğündeki girdilerden belirlenebilir.
Yaygın bir hata koşulu, ASP.NET Core paylaşılan çerçevesinin mevcut olmayan bir sürümünü hedefleme nedeniyle uygulamanın yanlış yapılandırılmasıdır. Hedef makinede ASP.NET Core paylaşılan çerçevesinin hangi sürümlerinin yüklü olduğunu denetleyin. Paylaşılan çerçeve, makineye yüklenen ve gibi Microsoft.AspNetCore.App
bir meta paket tarafından başvurulan derleme kümesidir (.dll dosyaları). Meta paket başvurusu gereken en düşük sürümü belirtebilir. 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ğinden uygulama başlatılamadı.
Bu hata, yayımlanan uygulama ile w3wp/iisexpress işlemi arasında bir bitlik uyumsuzluğu olduğunda oluşur.
Uygulama havuzunun 32 bit ayarının doğru olduğunu onaylayın:
- IIS Yöneticisi'nin Uygulama Havuzları'nda uygulama havuzunu seçin.
- Eylemler panelinde Uygulama Havuzunu Düzenle'nin altında Gelişmiş Ayarlar'ı seçin.
- 32 Bit Uygulamaları Etkinleştir'i ayarlayın:
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
True
ayarlayın. - 64 bit (x64) bir uygulama dağıtıyorsanız, değerini olarak
False
ayarlayın.
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
Proje dosyasındaki bir <Platform>
MSBuild özelliği ile uygulamanın yayımlanan bitliği arasında çakışma olmadığını onaylayın.
Bağlantı sıfırlama
Üst bilgiler gönderildikten sonra bir hata oluşursa, hata oluştuğunda sunucunun 500 İç Sunucu Hatası göndermesi çok geç olur. Bu durum genellikle bir yanıt için karmaşık nesnelerin seri hale getirilmesi sırasında bir hata oluştuğunda oluşur. Bu tür bir hata, istemcide bağlantı sıfırlama hatası olarak görünür. Uygulama günlüğü bu tür hataları gidermeye yardımcı olabilir.
Varsayılan başlangıç sınırları
ASP.NET Çekirdek Modülü, varsayılan startupTimeLimit değeri 120 saniye ile yapılandırılır. Varsayılan değerde bırakıldığında, modülün işlem hatasını günlüğe kaydedebilmesi için uygulamanın başlatılması iki dakika kadar sürebilir. Modülü yapılandırma hakkında bilgi için bkz . aspNetCore öğesinin öznitelikleri.
Azure Uygulaması Hizmetinde sorun giderme
Önemli
Azure Uygulaması Hizmeti ile ASP.NET Core önizleme sürümleri
ASP.NET Core önizleme sürümleri varsayılan olarak Azure Uygulaması Hizmetine dağıtılmaz. ASP.NET Core önizleme sürümünü kullanan bir uygulamayı barındırmak için bkz. Azure Uygulaması Hizmetine ASP.NET Core önizleme sürümünü dağıtma.
Uygulama Olay Günlüğü (Azure Uygulaması Hizmeti)
Uygulama Olay Günlüğü'ne erişmek için Azure portalındaki Sorunları tanılama ve çözme dikey penceresini kullanın:
- Azure portalında uygulamayı App Services'te açın.
- Sorunları tanılama ve çözme’yi seçin.
- Tanılama Araçları başlığını seçin.
- Destek Araçları'nın altında Uygulama Olayları düğmesini seçin.
- Kaynak sütununda IIS AspNetCoreModule veya IIS AspNetCoreModule V2 girdisi tarafından sağlanan en son hatayı inceleyin.
Sorunları tanılama ve çözme dikey penceresini kullanmanın bir alternatifi, Uygulama Olay Günlüğü dosyasını kudu kullanarak doğrudan incelemektir:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- LogFiles klasörünü açın.
- Dosyanın yanındaki
eventlog.xml
kalem simgesini seçin. - Günlüğü inceleyin. En son olayları görmek için günlüğün en altına kaydırın.
Uygulamayı Kudu konsolunda çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. Hatayı bulmak için uygulamayı Kudu Uzaktan Yürütme Konsolu'nda çalıştırabilirsiniz:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
32 bit (x86) bir uygulamayı test edin
Geçerli sürüm
cd d:\home\site\wwwroot
- 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.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32
({X.Y}
çalışma zamanı sürümüdür)- 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) uygulamasını test edin
Geçerli sürüm
- Uygulama 64 bit (x64) çerçeveye bağımlı bir dağıtımsa:
cd D:\Program Files\dotnet
- Uygulamayı çalıştırın:
dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
- Uygulama bağımsız bir dağıtımsa:
cd D:\home\site\wwwroot
- 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ünde çalışan çerçeveye bağımlı dağıtım
ASP.NET Core {VERSION} (x64) Çalışma Zamanı site uzantısının yüklenmesini gerektirir.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64
({X.Y}
çalışma zamanı sürümüdür)- 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 Module stdout günlüğü (Azure Uygulaması Hizmeti)
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:
- Azure portalında Sorunları tanılama ve çözme dikey penceresine gidin.
- SORUN KATEGORİSİ SEÇ altında Web Uygulaması Aşağı düğmesini seçin.
- Önerilen Çözümler>Stdout Günlüğü Yeniden Yönlendirmesini Etkinleştir'in altında, Web.Config'i düzenlemek için Kudu Konsolunu Aç düğmesini seçin.
- Kudu Tanılama Konsolu'nda wwwroot yol sitesinin>klasörlerini açın. Listenin en altındaki web.config dosyasını görüntülemek için ekranı aşağı kaydırın.
- Web.config dosyasının yanındaki kalem simgesine tıklayın.
- stdoutLogEnabled değerini olarak ayarlayın ve stdoutLogFile yolunu olarak değiştirin:
\\?\%home%\LogFiles\stdout
.true
- Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet'i seçin.
- Uygulamaya bir istekte bulunın.
- Azure portalına geri dönün. GELİşTİrME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresini seçin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- LogFiles klasörünü seçin.
- Değiştirilmiş sütununu inceleyin ve en son değişiklik tarihiyle stdout günlüğünü düzenlemek için kalem simgesini seçin.
- Günlük dosyası açıldığında hata görüntülenir.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın:
- Kudu Tanılama Konsolu'nda wwwroot yol sitesine>dönerek web.config dosyasını açın. Kalem simgesini seçerek web.config dosyasını yeniden açın.
- stdoutLogEnabled değerini olarak
false
ayarlayın. - Dosyayı kaydetmek için Kaydet'i seçin.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir sınır yoktur. Uygulama başlatma sorunlarını gidermek için yalnızca stdout günlüğünü kullanın.
ASP.NET Core uygulamasında başlangıçtan sonra genel 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 Çekirdek Modülü hata ayıklama günlüğü (Azure Uygulaması Hizmeti)
ASP.NET Çekirdek Modülü hata ayıklama günlüğü, ASP.NET Core Modülü'nden ek ve daha derin günlüğe kaydetme sağlar. stdout günlüklerini etkinleştirmek ve görüntülemek için:
- 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 için Gelişmiş tanılama günlükleri'ndeki yönergeleri izleyin. Uygulamayı yeniden dağıtın.
- Gelişmiş tanılama günlüklerinde gösterileni
<handlerSettings>
Kudu konsolunu kullanarak canlı uygulamanın web.config dosyasına ekleyin:- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın. Kalem düğmesini seçerek web.config dosyasını düzenleyin.
<handlerSettings>
Gelişmiş tanılama günlüklerinde gösterildiği gibi bölümü ekleyin. Kaydet düğmesini seçin.
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın. aspnetcore-debug.log dosyası için bir yol sağlamadıysanız, dosya listede görünür. Bir yol sağladıysanız günlük dosyasının konumuna gidin.
- Günlük dosyasını, dosya adının yanındaki kalem düğmesiyle açın.
Sorun giderme tamamlandığında hata ayıklama günlüğünü devre dışı bırakın:
Gelişmiş hata ayıklama günlüğünü devre dışı bırakmak için aşağıdakilerden birini gerçekleştirin:
<handlerSettings>
web.config dosyasından yerel olarak öğesini kaldırın ve uygulamayı yeniden dağıtın.- Web.config dosyasını düzenlemek ve bölümü kaldırmak için Kudu konsolunu
<handlerSettings>
kullanın. Dosyayı kaydedin.
Daha fazla bilgi için bkz . ASP.NET Çekirdek Modülü ile günlük oluşturma ve yeniden yönlendirme.
Uyarı
Hata ayıklama günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu sınırı yoktur. Yalnızca uygulama başlatma sorunlarını gidermek için hata ayıklama günlüğünü kullanın.
ASP.NET Core uygulamasında başlangıçtan sonra genel 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 yanıt vermeyen uygulama (Azure Uygulaması Hizmeti)
Bir uygulama yavaş yanıtladığında veya bir isteğe yanıt vermediğinde aşağıdaki makalelere bakın:
- Azure App Service web uygulamasında yavaş performans sorunlarını giderme
- Azure Web App'te Aralıklı Özel Durum sorunları veya performans sorunları için Dökümü Yakalamak için Kilitlenme Tanılayıcısı Site Uzantısını Kullanma
İzleme dikey pencereleri
İzleme dikey pencereleri, konunun önceki bölümlerinde açıklanan yöntemlere alternatif bir sorun giderme deneyimi sağlar. Bu dikey değişkenler 500 serisi hataları tanılamak için kullanılabilir.
ASP.NET Çekirdek Uzantıları'nın yüklendiğini onaylayın. Uzantılar yüklü değilse el ile yükleyin:
- GELİrME ARAÇLARI dikey penceresinde Uzantılar dikey penceresini seçin.
- ASP.NET Çekirdek Uzantıları listede görünmelidir.
- Uzantılar yüklü değilse Ekle düğmesini seçin.
- Listeden ASP.NET Çekirdek Uzantıları'nı seçin.
- Yasal koşulları kabul etmek için Tamam’ı seçin.
- Uzantı ekle dikey penceresinde Tamam'ı seçin.
- Uzantıların ne zaman başarıyla yüklendiğini gösteren bilgi amaçlı bir açılır ileti.
stdout günlüğü etkinleştirilmediyse şu adımları izleyin:
- Azure portalında, GELİşTİrME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresini seçin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın ve listenin en altındaki web.config dosyasını görüntülemek için aşağı kaydırın.
- Web.config dosyasının yanındaki kalem simgesine tıklayın.
- stdoutLogEnabled değerini olarak ayarlayın ve stdoutLogFile yolunu olarak değiştirin:
\\?\%home%\LogFiles\stdout
.true
- Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet'i seçin.
Tanılama günlüğünü etkinleştirmeye devam edin:
- Azure portalında Tanılama günlükleri dikey penceresini seçin.
- Uygulama Günlüğü (Dosya Sistemi) ve Ayrıntılı hata iletileri için Açık anahtarını seçin. Dikey penceresinin üst kısmındaki Kaydet düğmesini seçin.
- Başarısız İstek Olayı Arabelleğe Alma (FREB) günlüğü olarak da bilinen başarısız istek izlemeyi eklemek için Başarısız istek izleme için Açık anahtarını seçin.
- Portaldaki Tanılama günlükleri dikey penceresinin hemen altında listelenen Günlük akışı dikey penceresini seçin.
- Uygulamaya bir istekte bulunın.
- Günlük akışı verilerinin içinde hatanın nedeni belirtilir.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakdığınızdan emin olun.
Başarısız istek izleme günlüklerini (FREB günlükleri) görüntülemek için:
- Azure portalında Sorunları tanılama ve çözme dikey penceresine gidin.
- Kenar çubuğunun DESTEK ARAÇLARI alanından Başarısız İstek İzleme Günlükleri'ni seçin.
Daha fazla bilgi için Azure Uygulaması Hizmetinde 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 Uygulamaları için Uygulama performansı SSS: Nasıl yaparım? başarısız istek izlemeyi açma? bölümüne bakın.
Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti'nde web uygulamaları için tanılama günlüğünü etkinleştirme.
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ü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:
- Başlat menüsü açın, Olay Görüntüleyicisi arayın ve Olay Görüntüleyicisi uygulamasını seçin.
- Olay Görüntüleyicisi'da Windows Günlükleri düğümünü açın.
- Uygulama Olay Günlüğü'nü açmak için Uygulama'ya tıklayın.
- Başarısız uygulamayla ilişkili hataları arayın. Hatalar, Kaynak sütununda IIS AspNetCore Modülü veya IIS Express AspNetCore Modülü değerine sahiptir.
Uygulamayı komut isteminde çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. 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ımsa:
- Komut isteminde dağıtım klasörüne gidin ve uygulamanın derlemesini dotnet.exe ile yürüterek uygulamayı çalıştırın. Aşağıdaki komutta, assembly_name> için <uygulama derlemesinin adını kullanın:
dotnet .\<assembly_name>.dll
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
Bağımsız dağıtım
Uygulama bağımsız bir dağıtımsa:
- 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, assembly_name> için <uygulama derlemesinin adını kullanın:
<assembly_name>.exe
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
ASP.NET Core Module stdout günlüğü (IIS)
stdout günlüklerini etkinleştirmek ve görüntülemek için:
- Barındırma sistemindeki sitenin dağıtım klasörüne gidin.
- Günlükler klasörü yoksa klasörü oluşturun. MSBuild'in dağıtımda günlükler klasörünü otomatik olarak oluşturmasını etkinleştirme yönergeleri için Dizin yapısı konusuna bakın.
- web.config dosyasını düzenleyin. stdoutLogEnabled olarak ayarlayın ve stdoutLogFile yolunu logs klasörüne işaret edecek şekilde değiştirin (örneğin,
.\logs\stdout
).true
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. Dosyastdout
adı ön eki olarak kullanıldığında, tipik bir günlük dosyası stdout_20180205184032_5412.log olarak adlandırılır. - Uygulama havuzunuzun identity günlükler klasörüne yazma izinlerine sahip olduğundan emin olun.
- Güncelleştirilmiş web.config dosyasını kaydedin.
- Uygulamaya bir istekte bulunın.
- Günlükler klasörüne gidin. En son stdout günlüğünü bulun ve açın.
- Hatalar için günlüğü inceleyin.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın:
- web.config dosyasını düzenleyin.
- stdoutLogEnabled değerini olarak
false
ayarlayın. - Dosyayı kaydedin.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
ASP.NET Çekirdek Modülü hata ayıklama günlüğü (IIS)
ASP.NET Çekirdek Modülü hata ayıklama günlüğünü etkinleştirmek için uygulamanın web.config dosyasına aşağıdaki işleyici 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 identity konuma yazma izinlerine sahip olduğunu onaylayın.
Daha fazla bilgi için bkz . ASP.NET Çekirdek Modülü ile 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 ortamında çalıştırmak için web.config'e eklenebilir. Konak oluşturucusunda uygulama başlangıcında UseEnvironment
ortam geçersiz kılınmadığı sürece ortam değişkeninin ayarlanması, uygulama çalıştırıldığında Geliştirici Özel Durum Sayfası'nın görüntülenmesine olanak tanır.
<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 ASPNETCORE_ENVIRONMENT
ayarlanması yalnızca İnternet'e sunulmamış hazırlama ve test sunucularında kullanılması önerilir. Sorun giderme sonrasında web.config dosyasından ortam değişkenini kaldırın. web.config içinde ortam değişkenlerini ayarlama hakkında bilgi için bkz. aspNetCore'un environmentVariables alt öğesi.
Bir uygulamadan veri alma
Bir uygulama isteklere yanıt verebilen bir uygulamaysa, terminal satır içi ara yazılımını kullanarak uygulamadan istek, bağlantı ve ek veriler alın. Daha fazla bilgi ve örnek kod için bkz . Çekirdek projelerde sorun giderme ve hata ayıklama ASP.NET.
Yavaş veya yanıtsız uygulama (IIS)
Kilitlenme bilgi dökümü, sistem belleğinin anlık görüntüsüdür ve uygulama kilitlenmesinin, başlatma hatasının veya yavaş uygulamanın nedenini belirlemeye yardımcı olabilir.
Uygulama kilitleniyor veya bir özel durumla karşılaşıyor
Windows Hata Bildirimi (WER) dökümünü alma ve analiz etme:
kilitlenme dökümü dosyalarının konumunda
c:\dumps
tutulacağı bir klasör oluşturun. Uygulama havuzunun klasöre yazma erişimi olmalıdır.EnableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\EnableDumps w3wp.exe c:\dumps
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\EnableDumps dotnet.exe c:\dumps
Kilitlenmeye neden olan koşullar altında uygulamayı çalıştırın.
Kilitlenme oluştuktan sonra DisableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\DisableDumps w3wp.exe
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\DisableDumps dotnet.exe
Bir uygulama kilitlenip döküm toplama işlemi tamamlandıktan sonra uygulamanın normal şekilde sonlandırılmasına izin verilir. PowerShell betiği, WER'yi uygulama başına en fazla beş döküm toplayacak şekilde yapılandırır.
Uyarı
Kilitlenme bilgi dökümleri büyük miktarda disk alanı kaplayabilir (her biri birkaç gigabayta kadar).
Uygulama yanıt vermiyor, başlatma sırasında başarısız oluyor veya normal şekilde çalışıyor
Bir uygulama yanıt vermeyi durdurduğunda ancak kilitlenmediğinde, başlatma sırasında başarısız olduğunda veya normal şekilde çalıştığında bkz . Kullanıcı Modu Döküm Dosyaları: Dökümü oluşturmak için uygun bir araç seçmek için En İyi Aracı Seçme.
Dökümü analiz etme
Döküm, çeşitli yaklaşımlar kullanılarak analiz edilebilir. Daha fazla bilgi için bkz . Kullanıcı Modu Döküm Dosyasını Çözümleme.
Paket önbelleklerini temizleme
Çalışan bir uygulama, geliştirme makinesindeki .NET Core SDK'sını yükselttikten veya uygulama içindeki paket sürümlerini değiştirdikten hemen sonra başarısız olabilir. Bazı durumlarda, tutarsız paketler ana yükseltmeler yaparken bir uygulamayı bozabilir. Bu sorunların çoğu şu yönergeleri izleyerek düzeltilebilir:
Bölme ve obj klasörlerini silin.
dotnet nuget locals all --clear komutunu komut kabuğundan yürüterek paket önbelleklerini temizleyin .
Paket önbelleklerini temizleme işlemi, nuget.exe aracıyla ve komutu
nuget locals all -clear
yürütülerek de gerçekleştirilebilir. nuget.exe, Windows masaüstü işletim sistemiyle paketlenmiş bir yükleme değildir ve NuGet web sitesinden ayrı olarak alınmalıdır.Projeyi geri yükleyin ve yeniden oluşturun.
Uygulamayı yeniden dağıtmadan önce sunucudaki dağıtım klasöründeki tüm dosyaları silin.
Ek kaynaklar
- ASP.NET Core projelerinde sorun giderme ve hata ayıklama
- ASP.NET Core ile Azure App Service ve IIS için yaygın hataları giderme
- ASP.NET Core hatalarını işleme
- IIS için ASP.NET Core Modülü (ANCM)
Azure belgeleri
- ASP.NET Core için Application Insights
- Visual Studio kullanarak Azure Uygulaması Hizmetinde web uygulaması sorunlarını giderme bölümünün uzaktan hata ayıklama web uygulamaları bölümü
- Azure App Service tanılama genel bakış
- Nasıl Yapılır: Azure App Service’te Uygulamaları İzleme
- Visual Studio kullanarak Azure Uygulaması Hizmeti'nde web uygulaması sorunlarını giderme
- Azure web uygulamalarınızda "502 hatalı ağ geçidi" ve "503 hizmet kullanılamıyor" HTTP hatalarını giderme
- Azure App Service web uygulamasında yavaş performans sorunlarını giderme
- Azure'da Web Apps için uygulama performansı hakkında SSS
- Azure Web App korumalı alanı (App Service çalışma zamanı yürütme sınırlamaları)
Visual Studio belgeleri
- Visual Studio 2017'de Azure'da IIS üzerinde Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio 2017'de Uzak IIS Bilgisayarında Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio kullanarak hata ayıklamayı öğrenin
Visual Studio Code belgeleri
Bu makalede, yaygın uygulama başlatma hataları hakkında bilgi ve bir uygulama Azure Uygulaması Hizmetine veya IIS'ye dağıtıldığında hataları tanılama yönergeleri sağlanır:
Uygulama başlatma hataları
Yaygın başlangıç HTTP durum kodu senaryolarını açıklar.
Azure Uygulaması Hizmetinde sorun giderme
Azure Uygulaması Hizmetine dağıtılan uygulamalar için sorun giderme önerileri sağlar.
IIS üzerinde sorun giderme
IIS'ye dağıtılan veya IIS Express'te yerel olarak çalıştırılan uygulamalar için sorun giderme önerileri sağlar. Bu kılavuz hem Windows Server hem de Windows masaüstü dağıtımları için geçerlidir.
Paket önbelleklerini temizleme
Tutarsız paketler büyük yükseltmeler gerçekleştirirken veya paket sürümlerini değiştirirken bir uygulamayı bozduğunda ne yapacağını açıklar.
Ek Kaynaklar
Ek sorun giderme konularını listeler.
Uygulama başlatma hataları
Visual Studio'da bir ASP.NET Core projesi hata ayıklama sırasında iis express barındırma olarak varsayılan olarak kullanılır. Yerel olarak hata ayıklama sırasında oluşan 502.5 İşlem Hatası, bu konudaki öneriler 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.
Hataya genellikle aşağıdaki senaryolardan herhangi birini içeren barındırma sistemindeki bozuk bir dağıtım neden olur:
- Uygulama barındırma sistemindeki yanlış klasöre dağıtıldı.
- Dağıtım işlemi, uygulamanın tüm dosya ve klasörlerini barındırma sistemindeki dağıtım klasörüne taşıyamadı.
- Web.config dosyası dağıtımda eksik veya web.config dosyası içeriği yanlış biçimlendirilmiş.
Aşağıdaki adımları gerçekleştirin:
- Barındırma sistemindeki dağıtım klasöründeki tüm dosya ve klasörleri silin.
- 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 onaylayın.
- Azure Uygulaması Hizmetinde barındırırken, uygulamanın klasöre
D:\home\site\wwwroot
dağıtıldığını onaylayın. - Uygulama IIS tarafından barındırıldığında, uygulamanın IIS Yöneticisi'nin Temel Ayarları'nda gösterilen IIS Fiziksel yoluna dağıtıldığını onaylayın.
- Barındırma sistemindeki 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ığını onaylayı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. IIS için ASP.NET Çekirdek Modülü (ANCM).
500 İç Sunucu Hatası
Uygulama başlatılır, ancak bir hata sunucunun isteği karşılamasını engeller.
Bu hata, başlatma sırasında veya yanıt oluşturulurken uygulamanın kodunda oluşur. Yanıt içerik içermeyebilir veya yanıt tarayıcıda 500 İç Sunucu Hatası olarak görünebilir. Uygulama Olay Günlüğü genellikle uygulamanın normal şekilde başlatıldığını belirtir. Sunucunun perspektifinden bakıldığında bu doğrudur. Uygulama başladı, 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 Module stdout günlüğünü etkinleştirin.
Bu hata, .NET Core Barındırma Paketi yüklenmediğinde veya bozuk olduğunda da oluşabilir. .NET Core Barındırma Paketinin (IIS için) veya Visual Studio'nun (IIS Express için) yüklenmesi veya onarılması sorunu çözebilir.
502.5 İşlem Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Çekirdek Modülü çalışan işlemini başlatmayı dener ancak başlatılamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve ASP.NET Çekirdek Modülü stdout günlüğündeki girdilerden belirlenebilir.
Yaygın bir hata koşulu, ASP.NET Core paylaşılan çerçevesinin mevcut olmayan bir sürümünü hedefleme nedeniyle uygulamanın yanlış yapılandırılmasıdır. Hedef makinede ASP.NET Core paylaşılan çerçevesinin hangi sürümlerinin yüklü olduğunu denetleyin. Paylaşılan çerçeve, makineye yüklenen ve gibi Microsoft.AspNetCore.App
bir meta paket tarafından başvurulan derleme kümesidir (.dll dosyaları). Meta paket başvurusu gereken en düşük sürümü belirtebilir. 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ğinden uygulama başlatılamadı.
Bu hata, yayımlanan uygulama ile w3wp/iisexpress işlemi arasında bir bitlik uyumsuzluğu olduğunda oluşur.
Uygulama havuzunun 32 bit ayarının doğru olduğunu onaylayın:
- IIS Yöneticisi'nin Uygulama Havuzları'nda uygulama havuzunu seçin.
- Eylemler panelinde Uygulama Havuzunu Düzenle'nin altında Gelişmiş Ayarlar'ı seçin.
- 32 Bit Uygulamaları Etkinleştir'i ayarlayın:
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
True
ayarlayın. - 64 bit (x64) bir uygulama dağıtıyorsanız, değerini olarak
False
ayarlayın.
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
Proje dosyasındaki bir <Platform>
MSBuild özelliği ile uygulamanın yayımlanan bitliği arasında çakışma olmadığını onaylayın.
Bağlantı sıfırlama
Üst bilgiler gönderildikten sonra bir hata oluşursa, hata oluştuğunda sunucunun 500 İç Sunucu Hatası göndermesi çok geç olur. Bu durum genellikle bir yanıt için karmaşık nesnelerin seri hale getirilmesi sırasında bir hata oluştuğunda oluşur. Bu tür bir hata, istemcide bağlantı sıfırlama hatası olarak görünür. Uygulama günlüğü bu tür hataları gidermeye yardımcı olabilir.
Varsayılan başlangıç sınırları
ASP.NET Çekirdek Modülü, varsayılan startupTimeLimit değeri 120 saniye ile yapılandırılır. Varsayılan değerde bırakıldığında, modülün işlem hatasını günlüğe kaydedebilmesi için uygulamanın başlatılması iki dakika kadar sürebilir. Modülü yapılandırma hakkında bilgi için bkz . aspNetCore öğesinin öznitelikleri.
Azure Uygulaması Hizmetinde sorun giderme
Önemli
Azure Uygulaması Hizmeti ile ASP.NET Core önizleme sürümleri
ASP.NET Core önizleme sürümleri varsayılan olarak Azure Uygulaması Hizmetine dağıtılmaz. ASP.NET Core önizleme sürümünü kullanan bir uygulamayı barındırmak için bkz. Azure Uygulaması Hizmetine ASP.NET Core önizleme sürümünü dağıtma.
Uygulama Olay Günlüğü (Azure Uygulaması Hizmeti)
Uygulama Olay Günlüğü'ne erişmek için Azure portalındaki Sorunları tanılama ve çözme dikey penceresini kullanın:
- Azure portalında uygulamayı App Services'te açın.
- Sorunları tanılama ve çözme’yi seçin.
- Tanılama Araçları başlığını seçin.
- Destek Araçları'nın altında Uygulama Olayları düğmesini seçin.
- Kaynak sütununda IIS AspNetCoreModule veya IIS AspNetCoreModule V2 girdisi tarafından sağlanan en son hatayı inceleyin.
Sorunları tanılama ve çözme dikey penceresini kullanmanın bir alternatifi, Uygulama Olay Günlüğü dosyasını kudu kullanarak doğrudan incelemektir:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- LogFiles klasörünü açın.
- Dosyanın yanındaki
eventlog.xml
kalem simgesini seçin. - Günlüğü inceleyin. En son olayları görmek için günlüğün en altına kaydırın.
Uygulamayı Kudu konsolunda çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. Hatayı bulmak için uygulamayı Kudu Uzaktan Yürütme Konsolu'nda çalıştırabilirsiniz:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
32 bit (x86) bir uygulamayı test edin
Geçerli sürüm
cd d:\home\site\wwwroot
- 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.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32
({X.Y}
çalışma zamanı sürümüdür)- 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) uygulamasını test edin
Geçerli sürüm
- Uygulama 64 bit (x64) çerçeveye bağımlı bir dağıtımsa:
cd D:\Program Files\dotnet
- Uygulamayı çalıştırın:
dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
- Uygulama bağımsız bir dağıtımsa:
cd D:\home\site\wwwroot
- 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ünde çalışan çerçeveye bağımlı dağıtım
ASP.NET Core {VERSION} (x64) Çalışma Zamanı site uzantısının yüklenmesini gerektirir.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64
({X.Y}
çalışma zamanı sürümüdür)- 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 Module stdout günlüğü (Azure Uygulaması Hizmeti)
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:
- Azure portalında Sorunları tanılama ve çözme dikey penceresine gidin.
- SORUN KATEGORİSİ SEÇ altında Web Uygulaması Aşağı düğmesini seçin.
- Önerilen Çözümler>Stdout Günlüğü Yeniden Yönlendirmesini Etkinleştir'in altında, Web.Config'i düzenlemek için Kudu Konsolunu Aç düğmesini seçin.
- Kudu Tanılama Konsolu'nda wwwroot yol sitesinin>klasörlerini açın. Listenin en altındaki web.config dosyasını görüntülemek için ekranı aşağı kaydırın.
- Web.config dosyasının yanındaki kalem simgesine tıklayın.
- stdoutLogEnabled değerini olarak ayarlayın ve stdoutLogFile yolunu olarak değiştirin:
\\?\%home%\LogFiles\stdout
.true
- Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet'i seçin.
- Uygulamaya bir istekte bulunın.
- Azure portalına geri dönün. GELİşTİrME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresini seçin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- LogFiles klasörünü seçin.
- Değiştirilmiş sütununu inceleyin ve en son değişiklik tarihiyle stdout günlüğünü düzenlemek için kalem simgesini seçin.
- Günlük dosyası açıldığında hata görüntülenir.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın:
- Kudu Tanılama Konsolu'nda wwwroot yol sitesine>dönerek web.config dosyasını açın. Kalem simgesini seçerek web.config dosyasını yeniden açın.
- stdoutLogEnabled değerini olarak
false
ayarlayın. - Dosyayı kaydetmek için Kaydet'i seçin.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir sınır yoktur. Uygulama başlatma sorunlarını gidermek için yalnızca stdout günlüğünü kullanın.
ASP.NET Core uygulamasında başlangıçtan sonra genel 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 yanıt vermiyor uygulaması (Azure Uygulaması Hizmeti)
Bir uygulama yavaş yanıtladığında veya bir isteğe yanıt vermediğinde aşağıdaki makalelere bakın:
- Azure App Service web uygulamasında yavaş performans sorunlarını giderme
- Azure Web App'te Aralıklı Özel Durum sorunları veya performans sorunları için Dökümü Yakalamak için Kilitlenme Tanılayıcısı Site Uzantısını Kullanma
İzleme dikey pencereleri
İzleme dikey pencereleri, konunun önceki bölümlerinde açıklanan yöntemlere alternatif bir sorun giderme deneyimi sağlar. Bu dikey değişkenler 500 serisi hataları tanılamak için kullanılabilir.
ASP.NET Çekirdek Uzantıları'nın yüklendiğini onaylayın. Uzantılar yüklü değilse el ile yükleyin:
- GELİrME ARAÇLARI dikey penceresinde Uzantılar dikey penceresini seçin.
- ASP.NET Çekirdek Uzantıları listede görünmelidir.
- Uzantılar yüklü değilse Ekle düğmesini seçin.
- Listeden ASP.NET Çekirdek Uzantıları'nı seçin.
- Yasal koşulları kabul etmek için Tamam’ı seçin.
- Uzantı ekle dikey penceresinde Tamam'ı seçin.
- Uzantıların ne zaman başarıyla yüklendiğini gösteren bilgi amaçlı bir açılır ileti.
stdout günlüğü etkinleştirilmediyse şu adımları izleyin:
- Azure portalında, GELİşTİrME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresini seçin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın ve listenin en altındaki web.config dosyasını görüntülemek için aşağı kaydırın.
- Web.config dosyasının yanındaki kalem simgesine tıklayın.
- stdoutLogEnabled değerini olarak ayarlayın ve stdoutLogFile yolunu olarak değiştirin:
\\?\%home%\LogFiles\stdout
.true
- Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet'i seçin.
Tanılama günlüğünü etkinleştirmeye devam edin:
- Azure portalında Tanılama günlükleri dikey penceresini seçin.
- Uygulama Günlüğü (Dosya Sistemi) ve Ayrıntılı hata iletileri için Açık anahtarını seçin. Dikey penceresinin üst kısmındaki Kaydet düğmesini seçin.
- Başarısız İstek Olayı Arabelleğe Alma (FREB) günlüğü olarak da bilinen başarısız istek izlemeyi eklemek için Başarısız istek izleme için Açık anahtarını seçin.
- Portaldaki Tanılama günlükleri dikey penceresinin hemen altında listelenen Günlük akışı dikey penceresini seçin.
- Uygulamaya bir istekte bulunın.
- Günlük akışı verilerinin içinde hatanın nedeni belirtilir.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakdığınızdan emin olun.
Başarısız istek izleme günlüklerini (FREB günlükleri) görüntülemek için:
- Azure portalında Sorunları tanılama ve çözme dikey penceresine gidin.
- Kenar çubuğunun DESTEK ARAÇLARI alanından Başarısız İstek İzleme Günlükleri'ni seçin.
Daha fazla bilgi için Azure Uygulaması Hizmetinde 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 Uygulamaları için Uygulama performansı SSS: Nasıl yaparım? başarısız istek izlemeyi açma? bölümüne bakın.
Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti'nde web uygulamaları için tanılama günlüğünü etkinleştirme.
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ü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:
- Başlat menüsü açın, Olay Görüntüleyicisi arayın ve Olay Görüntüleyicisi uygulamasını seçin.
- Olay Görüntüleyicisi'da Windows Günlükleri düğümünü açın.
- Uygulama Olay Günlüğü'nü açmak için Uygulama'ya tıklayın.
- Başarısız uygulamayla ilişkili hataları arayın. Hatalar, Kaynak sütununda IIS AspNetCore Modülü veya IIS Express AspNetCore Modülü değerine sahiptir.
Uygulamayı komut isteminde çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. 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ımsa:
- Komut isteminde dağıtım klasörüne gidin ve uygulamanın derlemesini dotnet.exe ile yürüterek uygulamayı çalıştırın. Aşağıdaki komutta, assembly_name> için <uygulama derlemesinin adını kullanın:
dotnet .\<assembly_name>.dll
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
Bağımsız dağıtım
Uygulama bağımsız bir dağıtımsa:
- 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, assembly_name> için <uygulama derlemesinin adını kullanın:
<assembly_name>.exe
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
ASP.NET Core Module stdout günlüğü (IIS)
stdout günlüklerini etkinleştirmek ve görüntülemek için:
- Barındırma sistemindeki sitenin dağıtım klasörüne gidin.
- Günlükler klasörü yoksa klasörü oluşturun. MSBuild'in dağıtımda günlükler klasörünü otomatik olarak oluşturmasını etkinleştirme yönergeleri için Dizin yapısı konusuna bakın.
- web.config dosyasını düzenleyin. stdoutLogEnabled olarak ayarlayın ve stdoutLogFile yolunu logs klasörüne işaret edecek şekilde değiştirin (örneğin,
.\logs\stdout
).true
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. Dosyastdout
adı ön eki olarak kullanıldığında, tipik bir günlük dosyası stdout_20180205184032_5412.log olarak adlandırılır. - Uygulama havuzunuzun identity günlükler klasörüne yazma izinlerine sahip olduğundan emin olun.
- Güncelleştirilmiş web.config dosyasını kaydedin.
- Uygulamaya bir istekte bulunın.
- Günlükler klasörüne gidin. En son stdout günlüğünü bulun ve açın.
- Hatalar için günlüğü inceleyin.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın:
- web.config dosyasını düzenleyin.
- stdoutLogEnabled değerini olarak
false
ayarlayın. - Dosyayı kaydedin.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
Geliştirici Özel Durum Sayfasını Etkinleştirme
Ortam ASPNETCORE_ENVIRONMENT
değişkeni, uygulamayı Geliştirme ortamında çalıştırmak için web.config'e eklenebilir. Konak oluşturucusunda uygulama başlangıcında UseEnvironment
ortam geçersiz kılınmadığı sürece ortam değişkeninin ayarlanması, uygulama çalıştırıldığında Geliştirici Özel Durum Sayfası'nın görüntülenmesine olanak tanır.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
ortam değişkeninin ASPNETCORE_ENVIRONMENT
ayarlanması yalnızca İnternet'e sunulmamış hazırlama ve test sunucularında kullanılması önerilir. Sorun giderme sonrasında web.config dosyasından ortam değişkenini kaldırın. web.config içinde ortam değişkenlerini ayarlama hakkında bilgi için bkz. aspNetCore'un environmentVariables alt öğesi.
Bir uygulamadan veri alma
Bir uygulama isteklere yanıt verebilen bir uygulamaysa, terminal satır içi ara yazılımını kullanarak uygulamadan istek, bağlantı ve ek veriler alın. Daha fazla bilgi ve örnek kod için bkz . Çekirdek projelerde sorun giderme ve hata ayıklama ASP.NET.
Yavaş veya yanıtsız uygulama (IIS)
Kilitlenme bilgi dökümü, sistem belleğinin anlık görüntüsüdür ve uygulama kilitlenmesinin, başlatma hatasının veya yavaş uygulamanın nedenini belirlemeye yardımcı olabilir.
Uygulama kilitleniyor veya bir özel durumla karşılaşıyor
Windows Hata Bildirimi (WER) dökümünü alma ve analiz etme:
kilitlenme dökümü dosyalarının konumunda
c:\dumps
tutulacağı bir klasör oluşturun. Uygulama havuzunun klasöre yazma erişimi olmalıdır.EnableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\EnableDumps w3wp.exe c:\dumps
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\EnableDumps dotnet.exe c:\dumps
Kilitlenmeye neden olan koşullar altında uygulamayı çalıştırın.
Kilitlenme oluştuktan sonra DisableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\DisableDumps w3wp.exe
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\DisableDumps dotnet.exe
Bir uygulama kilitlenip döküm toplama işlemi tamamlandıktan sonra uygulamanın normal şekilde sonlandırılmasına izin verilir. PowerShell betiği, WER'yi uygulama başına en fazla beş döküm toplayacak şekilde yapılandırır.
Uyarı
Kilitlenme bilgi dökümleri büyük miktarda disk alanı kaplayabilir (her biri birkaç gigabayta kadar).
Uygulama yanıt vermiyor, başlatma sırasında başarısız oluyor veya normal şekilde çalışıyor
Bir uygulama yanıt vermeyi durdurduğunda ancak kilitlenmediğinde, başlatma sırasında başarısız olduğunda veya normal şekilde çalıştığında bkz . Kullanıcı Modu Döküm Dosyaları: Dökümü oluşturmak için uygun bir araç seçmek için En İyi Aracı Seçme.
Dökümü analiz etme
Döküm, çeşitli yaklaşımlar kullanılarak analiz edilebilir. Daha fazla bilgi için bkz . Kullanıcı Modu Döküm Dosyasını Çözümleme.
Paket önbelleklerini temizleme
Çalışan bir uygulama, geliştirme makinesindeki .NET Core SDK'sını yükselttikten veya uygulama içindeki paket sürümlerini değiştirdikten hemen sonra başarısız olabilir. Bazı durumlarda, tutarsız paketler ana yükseltmeler yaparken bir uygulamayı bozabilir. Bu sorunların çoğu şu yönergeleri izleyerek düzeltilebilir:
Bölme ve obj klasörlerini silin.
dotnet nuget locals all --clear komutunu komut kabuğundan yürüterek paket önbelleklerini temizleyin .
Paket önbelleklerini temizleme işlemi, nuget.exe aracıyla ve komutu
nuget locals all -clear
yürütülerek de gerçekleştirilebilir. nuget.exe, Windows masaüstü işletim sistemiyle paketlenmiş bir yükleme değildir ve NuGet web sitesinden ayrı olarak alınmalıdır.Projeyi geri yükleyin ve yeniden oluşturun.
Uygulamayı yeniden dağıtmadan önce sunucudaki dağıtım klasöründeki tüm dosyaları silin.
Ek kaynaklar
- ASP.NET Core projelerinde sorun giderme ve hata ayıklama
- ASP.NET Core ile Azure App Service ve IIS için yaygın hataları giderme
- ASP.NET Core hatalarını işleme
- IIS için ASP.NET Core Modülü (ANCM)
Azure belgeleri
- ASP.NET Core için Application Insights
- Visual Studio kullanarak Azure Uygulaması Hizmetinde web uygulaması sorunlarını giderme bölümünün uzaktan hata ayıklama web uygulamaları bölümü
- Azure App Service tanılama genel bakış
- Nasıl Yapılır: Azure App Service’te Uygulamaları İzleme
- Visual Studio kullanarak Azure Uygulaması Hizmeti'nde web uygulaması sorunlarını giderme
- Azure web uygulamalarınızda "502 hatalı ağ geçidi" ve "503 hizmet kullanılamıyor" HTTP hatalarını giderme
- Azure App Service web uygulamasında yavaş performans sorunlarını giderme
- Azure'da Web Apps için uygulama performansı hakkında SSS
- Azure Web App korumalı alanı (App Service çalışma zamanı yürütme sınırlamaları)
Visual Studio belgeleri
- Visual Studio 2017'de Azure'da IIS üzerinde Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio 2017'de Uzak IIS Bilgisayarında Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio kullanarak hata ayıklamayı öğrenin
Visual Studio Code belgeleri
Bu makalede, yaygın uygulama başlatma hataları hakkında bilgi ve bir uygulama Azure Uygulaması Hizmetine veya IIS'ye dağıtıldığında hataları tanılama yönergeleri sağlanır:
Uygulama başlatma hataları
Yaygın başlangıç HTTP durum kodu senaryolarını açıklar.
Azure Uygulaması Hizmetinde sorun giderme
Azure Uygulaması Hizmetine dağıtılan uygulamalar için sorun giderme önerileri sağlar.
IIS üzerinde sorun giderme
IIS'ye dağıtılan veya IIS Express'te yerel olarak çalıştırılan uygulamalar için sorun giderme önerileri sağlar. Bu kılavuz hem Windows Server hem de Windows masaüstü dağıtımları için geçerlidir.
Paket önbelleklerini temizleme
Tutarsız paketler büyük yükseltmeler gerçekleştirirken veya paket sürümlerini değiştirirken bir uygulamayı bozduğunda ne yapacağını açıklar.
Ek Kaynaklar
Ek sorun giderme konularını listeler.
Uygulama başlatma hataları
Visual Studio'da ASP.NET Core projesi varsayılan sunucusudur Kestrel. Visual Studio, IIS Express kullanacak şekilde yapılandırılabilir. A 502.5 - İşlem Hatası veya 500.30 - IIS Express ile yerel olarak hata ayıklarken oluşan Başlatma Hatası , bu konudaki öneriler 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.
Hataya genellikle aşağıdaki senaryolardan herhangi birini içeren barındırma sistemindeki bozuk bir dağıtım neden olur:
- Uygulama barındırma sistemindeki yanlış klasöre dağıtıldı.
- Dağıtım işlemi, uygulamanın tüm dosya ve klasörlerini barındırma sistemindeki dağıtım klasörüne taşıyamadı.
- Web.config dosyası dağıtımda eksik veya web.config dosyası içeriği yanlış biçimlendirilmiş.
Aşağıdaki adımları gerçekleştirin:
- Barındırma sistemindeki dağıtım klasöründeki tüm dosya ve klasörleri silin.
- 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 onaylayın.
- Azure Uygulaması Hizmetinde barındırırken, uygulamanın klasöre
D:\home\site\wwwroot
dağıtıldığını onaylayın. - Uygulama IIS tarafından barındırıldığında, uygulamanın IIS Yöneticisi'nin Temel Ayarları'nda gösterilen IIS Fiziksel yoluna dağıtıldığını onaylayın.
- Barındırma sistemindeki 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ığını onaylayı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. IIS için ASP.NET Çekirdek Modülü (ANCM).
500 İç Sunucu Hatası
Uygulama başlatılır, ancak bir hata sunucunun isteği karşılamasını engeller.
Bu hata, başlatma sırasında veya yanıt oluşturulurken uygulamanın kodunda oluşur. Yanıt içerik içermeyebilir veya yanıt tarayıcıda 500 İç Sunucu Hatası olarak görünebilir. Uygulama Olay Günlüğü genellikle uygulamanın normal şekilde başlatıldığını belirtir. Sunucunun perspektifinden bakıldığında bu doğrudur. Uygulama başladı, 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 Module stdout günlüğünü etkinleştirin.
Bu hata, .NET Core Barındırma Paketi yüklenmediğinde veya bozuk olduğunda da oluşabilir. .NET Core Barındırma Paketinin (IIS için) veya Visual Studio'nun (IIS Express için) yüklenmesi veya onarılması sorunu çözebilir.
500.0 İşlem İçi İşleyici Yükleme Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
Çekirdek Modül bileşenleri ASP.NET yüklenirken bilinmeyen bir hata oluştu. Aşağıdaki eylemlerden birini uygulayın:
- Microsoft Desteği ile iletişime geçin (Geliştirici Araçları'nı ve ardından ASP.NET Core'ı seçin).
- Stack Overflow hakkında bir soru sorun.
- GitHub depomuzda bir sorun oluşturun.
500.30 İşlem İçi Başlatma Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Core Modülü işlem sırasında .NET Core CLR'yi başlatmayı dener, ancak başlatılamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve ASP.NET Çekirdek Modülü stdout günlüğündeki girdilerden belirlenebilir.
Yaygın hata koşulları:
- ASP.NET Core paylaşılan çerçevesinin mevcut olmayan bir sürümünü hedeflemesi nedeniyle uygulama yanlış yapılandırılmış. Hedef makinede ASP.NET Core paylaşılan çerçevesinin hangi sürümlerinin yüklü olduğunu denetleyin.
- Azure Key Vault'un kullanılması, Key Vault için izinlerin olmaması. Doğru izinlerin verildiğinden emin olmak için hedeflenen Key Vault'taki erişim ilkelerini denetleyin.
500.31 ANCM Yerel Bağımlılıkları Bulamadı
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Core Modülü.NET Core çalışma zamanını işlem içinde başlatmayı dener, ancak başlatılamaz. Bu başlatma hatasının en yaygın nedeni, veya Microsoft.AspNetCore.App
çalışma zamanının Microsoft.NETCore.App
yüklenmemesidir. Uygulama ASP.NET Core 3.0 hedefine dağıtıldıysa ve bu sürüm makinede yoksa, bu hata oluşur. Örnek bir hata iletisi aşağıda verilmiştir:
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ü 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 bulunan bir .NET Core sürümünü hedeflemek için değiştirin.
- Uygulamayı bağımsız dağıtım olarak yayımlayın.
Geliştirme sırasında çalışırken ( 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üğü'nde de bulunur.
500.32 ANCM Dll Yüklenemedi
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
Bu hatanın en yaygın nedeni, uygulamanın uyumsuz bir işlemci mimarisi için yayımlanmasıdır. Çalışan işlemi 32 bit uygulama olarak çalışıyorsa ve uygulama hedef 64 bit olarak yayımlandıysa, bu hata oluşur.
Bu hatayı düzeltmek için:
- Çalışan işlemiyle aynı işlemci mimarisi için uygulamayı yeniden yayımlayın.
- Uygulamayı çerçeveye bağımlı dağıtım olarak yayımlayın.
500.33 ANCM İstek İşleyicisi Yükleme Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
Uygulama çerçeveye Microsoft.AspNetCore.App
başvurmadı. yalnızca çerçeveyi Microsoft.AspNetCore.App
hedefleyen uygulamalar ASP.NET Çekirdek Modülü tarafından barındırılabilir.
Bu hatayı düzeltmek için uygulamanın çerçeveyi hedeflediğini Microsoft.AspNetCore.App
onaylayın. .runtimeconfig.json
Uygulamanın hedeflediği çerçeveyi doğrulamak için öğesini denetleyin.
500.34 ANCM Karma Barındırma Modelleri Desteklenmiyor
Çalışan işlemi hem işlem içi hem de işlem dışı bir uygulamayı aynı işlemde çalıştıramaz.
Bu hatayı düzeltmek için uygulamaları ayrı IIS uygulama havuzlarında çalıştırın.
500.35 ANCM Aynı İşlemde Birden Çok İşlem İçi Uygulama
Çalışan işlemi aynı işlemde birden çok işlem içi 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ışı İşleyici Yük Hatası
aspnetcorev2_outofprocess.dll işlem dışı istek işleyicisi, aspnetcorev2.dll dosyasının yanında değildir. Bu, ASP.NET Çekirdek Modülünün bozuk yüklemesini gösterir.
Bu hatayı düzeltmek için .NET Core Barındırma Paketi (IIS için) veya Visual Studio (IIS Express için) yüklemesini onarın.
500.37 ANCM Başlangıç Süresi Sınırı İçinde Başlatılamadı
ANCM, sağlanan başlangıç süresi sınırı içinde başlatılamadı. Varsayılan olarak, zaman aşımı 120 saniyedir.
Bu hata, aynı makinede çok sayıda uygulama başlatılırken oluşabilir. Başlatma sırasında sunucuda CPU/Bellek kullanımı artışlarını denetleyin. Birden çok uygulamanın başlangıç işlemini aşamalı olarak gerçekleştirmeniz gerekebilir.
500.38 ANCM Uygulama DLL'i 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 modeli kullanılarak tek dosyalı yürütülebilir dosya olarak paketlenmiş bir uygulama barındırılırken oluşur. İşlem içi model, ANCM'nin .NET Core uygulamasını mevcut IIS işlemine yüklemesini gerektirir. Bu senaryo tek dosyalı dağıtım modeli tarafından desteklenmez. Bu hatayı düzeltmek için uygulamanın proje dosyasında aşağıdaki yaklaşımlardan birini kullanın:
- MSBuild özelliğini
false
olarak ayarlayarak tek dosyalı yayımlamayıPublishSingleFile
devre dışı bırakın. - MSBuild özelliğini olarak ayarlayarak işlem dışı barındırma modeline
AspNetCoreHostingModel
OutOfProcess
geçin.
502.5 İşlem Hatası
Çalışan işlemi başarısız oluyor. Uygulama başlatılmıyor.
ASP.NET Çekirdek Modülü çalışan işlemini başlatmayı dener ancak başlatılamaz. İşlem başlatma hatasının nedeni genellikle Uygulama Olay Günlüğü ve ASP.NET Çekirdek Modülü stdout günlüğündeki girdilerden belirlenebilir.
Yaygın bir hata koşulu, ASP.NET Core paylaşılan çerçevesinin mevcut olmayan bir sürümünü hedefleme nedeniyle uygulamanın yanlış yapılandırılmasıdır. Hedef makinede ASP.NET Core paylaşılan çerçevesinin hangi sürümlerinin yüklü olduğunu denetleyin. Paylaşılan çerçeve, makineye yüklenen ve gibi Microsoft.AspNetCore.App
bir meta paket tarafından başvurulan derleme kümesidir (.dll dosyaları). Meta paket başvurusu gereken en düşük sürümü belirtebilir. 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ğinden uygulama başlatılamadı.
Bu hata, yayımlanan uygulama ile w3wp/iisexpress işlemi arasında bir bitlik uyumsuzluğu olduğunda oluşur.
Uygulama havuzunun 32 bit ayarının doğru olduğunu onaylayın:
- IIS Yöneticisi'nin Uygulama Havuzları'nda uygulama havuzunu seçin.
- Eylemler panelinde Uygulama Havuzunu Düzenle'nin altında Gelişmiş Ayarlar'ı seçin.
- 32 Bit Uygulamaları Etkinleştir'i ayarlayın:
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
True
ayarlayın. - 64 bit (x64) bir uygulama dağıtıyorsanız, değerini olarak
False
ayarlayın.
- 32 bit (x86) bir uygulama dağıtıyorsanız, değerini olarak
Proje dosyasındaki bir <Platform>
MSBuild özelliği ile uygulamanın yayımlanan bitliği arasında çakışma olmadığını onaylayın.
Uygulama başlatılamadı (ErrorCode '0x800701b1')
EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/3/ROOT', ErrorCode '0x800701b1'.
Bir Windows Hizmeti yüklenemediği için uygulama başlatılamadı.
Etkinleştirilmesi gereken yaygın hizmetlerden biri "null" hizmetidir.
Aşağıdaki komut Windows Hizmetini etkinleştirir null
:
sc.exe start null
Bağlantı sıfırlama
Üst bilgiler gönderildikten sonra bir hata oluşursa, hata oluştuğunda sunucunun 500 İç Sunucu Hatası göndermesi çok geç olur. Bu durum genellikle bir yanıt için karmaşık nesnelerin seri hale getirilmesi sırasında bir hata oluştuğunda oluşur. Bu tür bir hata, istemcide bağlantı sıfırlama hatası olarak görünür. Uygulama günlüğü bu tür hataları gidermeye yardımcı olabilir.
Varsayılan başlangıç sınırları
ASP.NET Çekirdek Modülü, varsayılan startupTimeLimit değeri 120 saniye ile yapılandırılır. Varsayılan değerde bırakıldığında, modülün işlem hatasını günlüğe kaydedebilmesi için uygulamanın başlatılması iki dakika kadar sürebilir. Modülü yapılandırma hakkında bilgi için bkz . aspNetCore öğesinin öznitelikleri.
Azure Uygulaması Hizmetinde sorun giderme
Önemli
Azure Uygulaması Hizmeti ile ASP.NET Core önizleme sürümleri
ASP.NET Core önizleme sürümleri varsayılan olarak Azure Uygulaması Hizmetine dağıtılmaz. ASP.NET Core önizleme sürümünü kullanan bir uygulamayı barındırmak için bkz. Azure Uygulaması Hizmetine ASP.NET Core önizleme sürümünü dağıtma.
Azure Uygulaması Services Günlük akışı
Azure Uygulaması Hizmetleri Günlüğü, günlüğe kaydetme bilgilerini gerçekleşirken akışla aktarır. Akış günlüklerini görüntülemek için:
- Azure portalında uygulamayı App Services'te açın.
- Sol bölmede App Service Günlüklerini İzleme'ye >gidin.
- Web Sunucusu Günlüğü için Dosya Sistemi'ne tıklayın. İsteğe bağlı olarak Uygulama günlüğünü etkinleştirin.
- Sol bölmede İzleme>Günlüğü akışı'na gidin ve uygulama günlükleri'ni veya Web Sunucusu Günlükleri'ni seçin.
Aşağıdaki görüntüler uygulama günlüklerinin çıkışını gösterir:
Akış günlükleri biraz gecikme süresine sahiptir ve hemen görüntülenmeyebilir.
Uygulama Olay Günlüğü (Azure Uygulaması Hizmeti)
Uygulama Olay Günlüğü'ne erişmek için Azure portalındaki Sorunları tanılama ve çözme dikey penceresini kullanın:
- Azure portalında uygulamayı App Services'te açın.
- Sorunları tanılama ve çözme’yi seçin.
- Tanılama Araçları başlığını seçin.
- Destek Araçları'nın altında Uygulama Olayları düğmesini seçin.
- Kaynak sütununda IIS AspNetCoreModule veya IIS AspNetCoreModule V2 girdisi tarafından sağlanan en son hatayı inceleyin.
Sorunları tanılama ve çözme dikey penceresini kullanmanın bir alternatifi, Uygulama Olay Günlüğü dosyasını kudu kullanarak doğrudan incelemektir:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- LogFiles klasörünü açın.
- Dosyanın yanındaki
eventlog.xml
kalem simgesini seçin. - Günlüğü inceleyin. En son olayları görmek için günlüğün en altına kaydırın.
Uygulamayı Kudu konsolunda çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. Hatayı bulmak için uygulamayı Kudu Uzaktan Yürütme Konsolu'nda çalıştırabilirsiniz:
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
32 bit (x86) bir uygulamayı test edin
Geçerli sürüm
cd d:\home\site\wwwroot
- 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.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32
({X.Y}
çalışma zamanı sürümüdür)- 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) uygulamasını test edin
Geçerli sürüm
- Uygulama 64 bit (x64) çerçeveye bağımlı bir dağıtımsa:
cd D:\Program Files\dotnet
- Uygulamayı çalıştırın:
dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
- Uygulama bağımsız bir dağıtımsa:
cd D:\home\site\wwwroot
- 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ünde çalışan çerçeveye bağımlı dağıtım
ASP.NET Core {VERSION} (x64) Çalışma Zamanı site uzantısının yüklenmesini gerektirir.
cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64
({X.Y}
çalışma zamanı sürümüdür)- 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 Module stdout günlüğü (Azure Uygulaması Hizmeti)
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir sınır yoktur. Uygulama başlatma sorunlarını gidermek için yalnızca stdout günlüğünü kullanın.
ASP.NET Core uygulamasında başlangıçtan sonra genel 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 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:
- Azure Portalı'nda web uygulamasına gidin.
- App Service dikey penceresinde, arama kutusuna kudu yazın.
- Gelişmiş Araçlar>Git'i seçin.
- Hata ayıklama konsolu > CMD'lerini seçin.
- siteye/wwwroot adresine gidin
- Web.config dosyasını düzenlemek için kalem simgesini seçin.
- öğesinde
<aspNetCore />
Kaydet'i ayarlayınstdoutLogEnabled="true"
ve seçin.
ayarlayarak stdoutLogEnabled="false"
sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
ASP.NET Çekirdek Modülü hata ayıklama günlüğü (Azure Uygulaması Hizmeti)
ASP.NET Çekirdek Modülü hata ayıklama günlüğü, ASP.NET Core Modülü'nden ek ve daha derin günlüğe kaydetme sağlar. stdout günlüklerini etkinleştirmek ve görüntülemek için:
- 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 için Gelişmiş tanılama günlükleri'ndeki yönergeleri izleyin. Uygulamayı yeniden dağıtın.
- Gelişmiş tanılama günlüklerinde gösterileni
<handlerSettings>
Kudu konsolunu kullanarak canlı uygulamanın web.config dosyasına ekleyin:- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın. Kalem düğmesini seçerek web.config dosyasını düzenleyin.
<handlerSettings>
Gelişmiş tanılama günlüklerinde gösterildiği gibi bölümü ekleyin. Kaydet düğmesini seçin.
- Geliştirme Araçları alanında Gelişmiş Araçlar'a gidin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın. aspnetcore-debug.log dosyası için bir yol sağlamadıysanız, dosya listede görünür. Bir yol sağladıysanız günlük dosyasının konumuna gidin.
- Günlük dosyasını, dosya adının yanındaki kalem düğmesiyle açın.
Sorun giderme tamamlandığında hata ayıklama günlüğünü devre dışı bırakın:
Gelişmiş hata ayıklama günlüğünü devre dışı bırakmak için aşağıdakilerden birini gerçekleştirin:
<handlerSettings>
web.config dosyasından yerel olarak öğesini kaldırın ve uygulamayı yeniden dağıtın.- Web.config dosyasını düzenlemek ve bölümü kaldırmak için Kudu konsolunu
<handlerSettings>
kullanın. Dosyayı kaydedin.
Daha fazla bilgi için bkz . ASP.NET Çekirdek Modülü ile günlük oluşturma ve yeniden yönlendirme.
Uyarı
Hata ayıklama günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu sınırı yoktur. Yalnızca uygulama başlatma sorunlarını gidermek için hata ayıklama günlüğünü kullanın.
ASP.NET Core uygulamasında başlangıçtan sonra genel 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 yanıt vermiyor uygulaması (Azure Uygulaması Hizmeti)
Bir uygulama yavaş yanıt veriyorsa veya bir isteğe yanıt vermiyorsa bkz. Azure Uygulaması Hizmeti'nde yavaş web uygulaması performans sorunlarını giderme.
İzleme dikey pencereleri
İzleme dikey pencereleri, konunun önceki bölümlerinde açıklanan yöntemlere alternatif bir sorun giderme deneyimi sağlar. Bu dikey değişkenler 500 serisi hataları tanılamak için kullanılabilir.
ASP.NET Çekirdek Uzantıları'nın yüklendiğini onaylayın. Uzantılar yüklü değilse el ile yükleyin:
- GELİrME ARAÇLARI dikey penceresinde Uzantılar dikey penceresini seçin.
- ASP.NET Çekirdek Uzantıları listede görünmelidir.
- Uzantılar yüklü değilse Ekle düğmesini seçin.
- Listeden ASP.NET Çekirdek Uzantıları'nı seçin.
- Yasal koşulları kabul etmek için Tamam’ı seçin.
- Uzantı ekle dikey penceresinde Tamam'ı seçin.
- Uzantıların ne zaman başarıyla yüklendiğini gösteren bilgi amaçlı bir açılır ileti.
stdout günlüğü etkinleştirilmediyse şu adımları izleyin:
- Azure portalında, GELİşTİrME ARAÇLARI alanında Gelişmiş Araçlar dikey penceresini seçin. Git→ düğmesini seçin. Kudu konsolu yeni bir tarayıcı sekmesinde veya penceresinde açılır.
- Sayfanın üst kısmındaki gezinti çubuğunu kullanarak Hata ayıklama konsolunu açın ve CMD'yi seçin.
- Klasörleri wwwroot yol sitesine>açın ve listenin en altındaki web.config dosyasını görüntülemek için aşağı kaydırın.
- Web.config dosyasının yanındaki kalem simgesine tıklayın.
- stdoutLogEnabled değerini olarak ayarlayın ve stdoutLogFile yolunu olarak değiştirin:
\\?\%home%\LogFiles\stdout
.true
- Güncelleştirilmiş web.config dosyasını kaydetmek için Kaydet'i seçin.
Tanılama günlüğünü etkinleştirmeye devam edin:
- Azure portalında Tanılama günlükleri dikey penceresini seçin.
- Uygulama Günlüğü (Dosya Sistemi) ve Ayrıntılı hata iletileri için Açık anahtarını seçin. Dikey penceresinin üst kısmındaki Kaydet düğmesini seçin.
- Başarısız İstek Olayı Arabelleğe Alma (FREB) günlüğü olarak da bilinen başarısız istek izlemeyi eklemek için Başarısız istek izleme için Açık anahtarını seçin.
- Portaldaki Tanılama günlükleri dikey penceresinin hemen altında listelenen Günlük akışı dikey penceresini seçin.
- Uygulamaya bir istekte bulunın.
- Günlük akışı verilerinin içinde hatanın nedeni belirtilir.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakdığınızdan emin olun.
Başarısız istek izleme günlüklerini (FREB günlükleri) görüntülemek için:
- Azure portalında Sorunları tanılama ve çözme dikey penceresine gidin.
- Kenar çubuğunun DESTEK ARAÇLARI alanından Başarısız İstek İzleme Günlükleri'ni seçin.
Daha fazla bilgi için Azure Uygulaması Hizmetinde 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 Uygulamaları için Uygulama performansı SSS: Nasıl yaparım? başarısız istek izlemeyi açma? bölümüne bakın.
Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti'nde web uygulamaları için tanılama günlüğünü etkinleştirme.
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ü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:
- Başlat menüsü açın, Olay Görüntüleyicisi arayın ve Olay Görüntüleyicisi uygulamasını seçin.
- Olay Görüntüleyicisi'da Windows Günlükleri düğümünü açın.
- Uygulama Olay Günlüğü'nü açmak için Uygulama'ya tıklayın.
- Başarısız uygulamayla ilişkili hataları arayın. Hatalar, Kaynak sütununda IIS AspNetCore Modülü veya IIS Express AspNetCore Modülü değerine sahiptir.
Uygulamayı komut isteminde çalıştırma
Birçok başlatma hatası, Uygulama Olay Günlüğü'nde yararlı bilgiler üretmez. 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ımsa:
- Komut isteminde dağıtım klasörüne gidin ve uygulamanın derlemesini dotnet.exe ile yürüterek uygulamayı çalıştırın. Aşağıdaki komutta, assembly_name> için <uygulama derlemesinin adını kullanın:
dotnet .\<assembly_name>.dll
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
Bağımsız dağıtım
Uygulama bağımsız bir dağıtımsa:
- 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, assembly_name> için <uygulama derlemesinin adını kullanın:
<assembly_name>.exe
. - Herhangi bir hatayı gösteren uygulamadan konsol çıkışı konsol penceresine yazılır.
- Uygulamaya istekte bulunurken hatalar oluşursa, dinlediği Kestrel ana bilgisayara ve bağlantı noktasına bir istekte bulunabilirsiniz. Varsayılan ana bilgisayar ve gönderiyi kullanarak adresine
http://localhost:5000/
bir istek gönderin. Uygulama uç nokta adresinde normal şekilde Kestrel yanıt veriyorsa, sorun büyük olasılıkla barındırma yapılandırmasıyla ilgilidir ve uygulama içinde daha az olasıdır.
ASP.NET Core Module stdout günlüğü (IIS)
stdout günlüklerini etkinleştirmek ve görüntülemek için:
- Barındırma sistemindeki sitenin dağıtım klasörüne gidin.
- Günlükler klasörü yoksa klasörü oluşturun. MSBuild'in dağıtımda günlükler klasörünü otomatik olarak oluşturmasını etkinleştirme yönergeleri için Dizin yapısı konusuna bakın.
- web.config dosyasını düzenleyin. stdoutLogEnabled olarak ayarlayın ve stdoutLogFile yolunu logs klasörüne işaret edecek şekilde değiştirin (örneğin,
.\logs\stdout
).true
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. Dosyastdout
adı ön eki olarak kullanıldığında, tipik bir günlük dosyası stdout_20180205184032_5412.log olarak adlandırılır. - Uygulama havuzunuzun identity günlükler klasörüne yazma izinlerine sahip olduğundan emin olun.
- Güncelleştirilmiş web.config dosyasını kaydedin.
- Uygulamaya bir istekte bulunın.
- Günlükler klasörüne gidin. En son stdout günlüğünü bulun ve açın.
- Hatalar için günlüğü inceleyin.
Sorun giderme tamamlandığında stdout günlüğünü devre dışı bırakın:
- web.config dosyasını düzenleyin.
- stdoutLogEnabled değerini olarak
false
ayarlayın. - Dosyayı kaydedin.
Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
Uyarı
stdout günlüğünün devre dışı bırakılmaması uygulama veya sunucu hatasına neden olabilir. Günlük dosyası boyutu veya oluşturulan günlük dosyalarının sayısıyla ilgili bir 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ük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
ASP.NET Çekirdek Modülü hata ayıklama günlüğü (IIS)
ASP.NET Çekirdek Modülü hata ayıklama günlüğünü etkinleştirmek için uygulamanın web.config dosyasına aşağıdaki işleyici 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 identity konuma yazma izinlerine sahip olduğunu onaylayın.
Daha fazla bilgi için bkz . ASP.NET Çekirdek Modülü ile 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 ortamında çalıştırmak için web.config'e eklenebilir. Konak oluşturucusunda uygulama başlangıcında UseEnvironment
ortam geçersiz kılınmadığı sürece ortam değişkeninin ayarlanması, uygulama çalıştırıldığında Geliştirici Özel Durum Sayfası'nın görüntülenmesine olanak tanır.
<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 ASPNETCORE_ENVIRONMENT
ayarlanması yalnızca İnternet'e sunulmamış hazırlama ve test sunucularında kullanılması önerilir. Sorun giderme sonrasında web.config dosyasından ortam değişkenini kaldırın. web.config içinde ortam değişkenlerini ayarlama hakkında bilgi için bkz. aspNetCore'un environmentVariables alt öğesi.
Bir uygulamadan veri alma
Bir uygulama isteklere yanıt verebilen bir uygulamaysa, terminal satır içi ara yazılımını kullanarak uygulamadan istek, bağlantı ve ek veriler alın. Daha fazla bilgi ve örnek kod için bkz . Çekirdek projelerde sorun giderme ve hata ayıklama ASP.NET.
Yavaş veya yanıtsız uygulama (IIS)
Kilitlenme bilgi dökümü, sistem belleğinin anlık görüntüsüdür ve uygulama kilitlenmesinin, başlatma hatasının veya yavaş uygulamanın nedenini belirlemeye yardımcı olabilir.
Uygulama kilitleniyor veya bir özel durumla karşılaşıyor
Windows Hata Bildirimi (WER) dökümünü alma ve analiz etme:
kilitlenme dökümü dosyalarının konumunda
c:\dumps
tutulacağı bir klasör oluşturun. Uygulama havuzunun klasöre yazma erişimi olmalıdır.EnableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\EnableDumps w3wp.exe c:\dumps
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\EnableDumps dotnet.exe c:\dumps
Kilitlenmeye neden olan koşullar altında uygulamayı çalıştırın.
Kilitlenme oluştuktan sonra DisableDumps PowerShell betiğini çalıştırın:
Uygulama işlem içi barındırma modelini kullanıyorsa w3wp.exe için betiği çalıştırın:
.\DisableDumps w3wp.exe
Uygulama işlem dışı barındırma modelini kullanıyorsa dotnet.exe için betiği çalıştırın:
.\DisableDumps dotnet.exe
Bir uygulama kilitlenip döküm toplama işlemi tamamlandıktan sonra uygulamanın normal şekilde sonlandırılmasına izin verilir. PowerShell betiği, WER'yi uygulama başına en fazla beş döküm toplayacak şekilde yapılandırır.
Uyarı
Kilitlenme bilgi dökümleri büyük miktarda disk alanı kaplayabilir (her biri birkaç gigabayta kadar).
Uygulama yanıt vermiyor, başlatma sırasında başarısız oluyor veya normal şekilde çalışıyor
Bir uygulama yanıt vermeyi durdurduğunda ancak kilitlenmediğinde, başlatma sırasında başarısız olduğunda veya normal şekilde çalıştığında bkz . Kullanıcı Modu Döküm Dosyaları: Dökümü oluşturmak için uygun bir araç seçmek için En İyi Aracı Seçme.
Dökümü analiz etme
Döküm, çeşitli yaklaşımlar kullanılarak analiz edilebilir. Daha fazla bilgi için bkz . Kullanıcı Modu Döküm Dosyasını Çözümleme.
Paket önbelleklerini temizleme
Çalışan bir uygulama, geliştirme makinesindeki .NET Core SDK'sını yükselttikten veya uygulama içindeki paket sürümlerini değiştirdikten hemen sonra başarısız olabilir. Bazı durumlarda, tutarsız paketler ana yükseltmeler yaparken bir uygulamayı bozabilir. Bu sorunların çoğu şu yönergeleri izleyerek düzeltilebilir:
Bölme ve obj klasörlerini silin.
dotnet nuget locals all --clear komutunu komut kabuğundan yürüterek paket önbelleklerini temizleyin .
Paket önbelleklerini temizleme işlemi, nuget.exe aracıyla ve komutu
nuget locals all -clear
yürütülerek de gerçekleştirilebilir. nuget.exe, Windows masaüstü işletim sistemiyle paketlenmiş bir yükleme değildir ve NuGet web sitesinden ayrı olarak alınmalıdır.Projeyi geri yükleyin ve yeniden oluşturun.
Uygulamayı yeniden dağıtmadan önce sunucudaki dağıtım klasöründeki tüm dosyaları silin.
Ek kaynaklar
- Visual Studio ile .NET ve ASP.NET Core kaynak kodunda hata ayıklama
- ASP.NET Core projelerinde sorun giderme ve hata ayıklama
- ASP.NET Core ile Azure App Service ve IIS için yaygın hataları giderme
- ASP.NET Core hatalarını işleme
- IIS için ASP.NET Core Modülü (ANCM)
Azure belgeleri
- ASP.NET Core için Application Insights
- Visual Studio kullanarak Azure Uygulaması Hizmetinde web uygulaması sorunlarını giderme bölümünün uzaktan hata ayıklama web uygulamaları bölümü
- Azure App Service tanılama genel bakış
- Nasıl Yapılır: Azure App Service’te Uygulamaları İzleme
- Visual Studio kullanarak Azure Uygulaması Hizmeti'nde web uygulaması sorunlarını giderme
- Azure web uygulamalarınızda "502 hatalı ağ geçidi" ve "503 hizmet kullanılamıyor" HTTP hatalarını giderme
- Azure App Service web uygulamasında yavaş performans sorunlarını giderme
- Azure'da Web Apps için uygulama performansı hakkında SSS
- Azure Web App korumalı alanı (App Service çalışma zamanı yürütme sınırlamaları)
Visual Studio belgeleri
- Visual Studio 2017'de Azure'da IIS üzerinde Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio 2017'de Uzak IIS Bilgisayarında Uzaktan Hata Ayıklama ASP.NET Çekirdeği
- Visual Studio kullanarak hata ayıklamayı öğrenin
Visual Studio Code belgeleri
ASP.NET Core