Aracılığıyla paylaş


Visual Studio'da ASP.NET veya ASP.NET Core uygulamalarında hata ayıklama

Visual Studio'da ASP.NET ve ASP.NET Core uygulamalarında hata ayıklayabilirsiniz. İşlem, ASP.NET ve ASP.NET Core ile IIS Express veya yerel IIS sunucusunda çalıştırmanız arasında farklılık gösterir.

Uyarı

Aşağıdaki adımlar ve ayarlar yalnızca yerel sunucudaki hata ayıklama uygulamaları için geçerlidir. Uzak IIS sunucusundaki uygulamalarda hata ayıklama, İşleme Ekle'yi kullanarak yapılır ve bu ayarları yoksayar. ASP.NET ve ASP.NET Core'da uzaktan hata ayıklama hakkında daha fazla bilgi ve yönergeler için bkz. Uzak IIS bilgisayarında uzaktan hata ayıklama ASP.NET Çekirdeği ve Azure App Service'te uzaktan hata ayıklama.

Yerleşik Kestrel ve IIS Express sunucuları Visual Studio'ya eklenir. Kestrel, ASP.NET Core projeleri için varsayılan hata ayıklama sunucusudur ve önceden yapılandırılmıştır. IIS Express, ASP.NET için varsayılan hata ayıklama sunucusudur.

Yerel IIS sunucusu için önkoşullar

Ayrıca, uygulamayı çalıştırmak üzere yapılandırılmış bir yerel IIS sunucusunda (sürüm 8.0 veya üzeri) bir ASP.NET veya ASP.NET Core uygulamasında hata ayıklayabilirsiniz. Yerel IIS'de hata ayıklamak için aşağıdaki gereksinimleri karşılamanız gerekir:

  • Yüklü değilse ASP.NET ve web geliştirme iş yükünü yükleyin. (Visual Studio Yükleyicisi'ni yeniden çalıştırın, Değiştir'i seçin ve bu iş yükünü ekleyin.)

  • Visual Studio'yu yönetici olarak çalıştırın.

  • IIS'yi ASP.NET ve/veya ASP.NET Core'un uygun sürümleriyle yükleyin ve doğru şekilde yapılandırın. IIS'yi ASP.NET Core ile kullanma hakkında daha fazla bilgi için bkz: ASP.NET Core'u Windows'ta IIS ile Barındırma. ASP.NET için bkz. IIS ve ASP.NET Modüllerini Yükleme.

  • Uygulamanın IIS üzerinde çalıştığından ve tarayıcıda açıldığından emin olun.

ASP.NET Core uygulamalarında hata ayıklama

Https veya proje adına dayanan bir varsayılan profil, Kestrel web sunucusu için yapılandırılmış olabilir. Bunun yerine yerel IIS'de hata ayıklıyorsanız, yerel IIS hata ayıklama önkoşullarını karşıladığınızdan emin olun.

  1. Visual Studio Çözüm Gezgini'nde ASP.NET Core projesini seçin ve Özellikler simgesine tıklayın veya Alt+Enter tuşuna basın ya da sağ tıklayıp Özellikler'i seçin.

  2. Hata Ayıkla sekmesini seçin ve hata ayıklama başlatma profillerini aç kullanıcı arabirimini açmak için bağlantıya tıklayın.

    Sunulan kullanıcı arabirimi, projenin launchSettings.json dosyasındaki ayarlara karşılık gelir. Bu dosya hakkında daha fazla bilgi için ASP.NET Core launchSettings.jsonGeliştirme ve bölümüne bakın.

  3. Hata ayıklama için yapılandırılan profili seçin.

    • Kestrel için https profilini veya projenin adını taşıyan profili seçin.
    • IIS Express için açılan listeden IIS Express'i seçin.
    • Yerel IIS için Yeni'yi seçin ve yeni bir IIS profili oluşturun.
  4. Tarayıcıyı başlat'ın seçili olduğundan emin olun.

  5. Url, Uygulama URL'si ve Uygulama SSL URL'lerinin doğru olduğundan emin olun.

    Url , .NET Core veya .NET 5+ için ana bilgisayar URL'sinin konumunu belirtir. Proje adını taşıyan bir profil için (yani, launchSettings.json'daki commandName özelliği Project), Kestrel sunucusu belirtilen bağlantı noktasını dinler. Iis profili için bu genellikle Uygulama URL'siile aynıdır. Daha fazla bilgi için proje yapılandırmaaltındaki IIS başlatma profili bölümüne bakın.

    Uygulama URL'si ve Uygulama SSL URL'si , uygulama URL'lerini belirtir.

    • Https profili için Uygulama URL'si özelliği genellikle https://localhost:7241;http://localhost:5175şeklindedir.
    • Projeye göre adlandırılmış bir profil için bu özellikler genellikle http://localhost:5000 ve https://localhost:5001 şeklindedir.
    • IIS Express için Uygulama SSL URL'si genellikle https://localhost:44334şeklindedir.
  6. Ortam değişkenleri altında, ASPNETCORE_ENVIRONMENT'in Geliştirme değeriyle mevcut olduğundan emin olun. Aksi takdirde değişkenini ekleyin.

    ASP.NET Core hata ayıklayıcısı ayarları

    Ortam değişkenleri hakkında daha fazla bilgi için bkz. Ortamlar.

  7. Uygulamada hata ayıklamak için projenizde bazı kodlarda kesme noktaları ayarlayın. Visual Studio araç çubuğunda yapılandırmanın Hata Ayıklama olarak ayarlandığından emin olun.

  8. Hata ayıklamaya başlamak için araç çubuğunda https, IIS Express veya <araç çubuğunda IIS profil adı gibi profil adını> seçin, Hata Ayıklamamenüsünden Hata Ayıklamayı Başlat'ı seçin veya F5 tuşuna basın. Hata ayıklayıcısı kesme noktalarında duraklatılır. Eğer hata ayıklayıcı (debugger) kesme noktalarına ulaşamıyorsa, Hata ayıklama sorunlarını giderme'ye bakın.

ASP.NET uygulamalarında hata ayıklama

IIS Express varsayılandır ve önceden yapılandırılmıştır. Yerel IIS'de hata ayıklıyorsanız yerel IIS hata ayıklama gereksinimlerini karşıladığınızdan emin olun.

  1. Visual Studio Çözüm Gezgini'nde ASP.NET projesini seçin ve Özellikler simgesine tıklayın ya da Alt+Enter tuşuna basın ya da sağ tıklayıp Özellikler'i seçin.

  2. Web sekmesini seçin.

    Web sekmesini görmüyorsanız bkz. ASP.NET Core uygulamalarında hata ayıklama. Web sekmesi yalnızca ASP.NET Framework için görünür.

  3. Özellikler bölmesinde, Sunucular'ın altında,

    • Kestrel için açılan listeden https'yi seçin.
    • IIS Express için açılan listeden IIS Express'i seçin.
    • Yerel IIS için,
      1. Açılan listeden Yerel IIS'yi seçin.
      2. Uygulamayı IIS'de henüz ayarlamadıysanız Proje URL'si alanının yanındaki Sanal Dizin Oluştur'u seçin.
  4. Hata Ayıklayıcılar'ın altında ASP.NET'ı seçin.

    ASP.NET hata ayıklayıcı ayarlarını gösteren ekran görüntüsü.

  5. Değişiklikleri kaydetmek için Dosya>Kaydet Seçili Öğeleri Kaydet'i seçin (veya Ctrl+S tuşuna basın).

  6. Uygulamada hata ayıklamak için projenizde bazı kodlarda kesme noktaları ayarlayın. Visual Studio araç çubuğunda yapılandırmanın Hata Ayıklama olarak ayarlandığından ve istediğiniz tarayıcının öykünücü alanındaki IIS Express (<Tarayıcı adı>) veya Yerel IIS (<Tarayıcı adı>) içinde göründüğünden emin olun.

  7. Hata ayıklamayı başlatmak için araç çubuğunda IIS Express (<Tarayıcı adı>) veya Yerel IIS (<Tarayıcı adı>) öğesini seçin, Hata Ayıklamenüsünden Hata Ayıklamayı Başlat'ı seçin veya F5 tuşuna basın. Hata ayıklayıcısı kesme noktalarında duraklatılır. Hata ayıklayıcısı kesme noktalarına basamıyorsa bkz. Hata ayıklama sorunlarını giderme.

Hata ayıklama sorunlarını giderme

Yerel IIS hata ayıklaması kesme noktasına ilerleyemiyorsa, sorun gidermek için bu adımları izleyin.

  1. Web uygulamasını IIS'den başlatın ve doğru çalıştığından emin olun. Web uygulamasını çalışır durumda bırakın.

  2. Visual Studio'da İşleme Ekle seçeneğini seçin veya Ctrl+Alt+P tuşlarına basın ve ASP.NET veya ASP.NET Core işlemine bağlanın (genellikle w3wp.exe veya dotnet.exe). Daha fazla bilgi için bkz. İşleme Ekleme ve ASP.NET işleminin adını bulma.

İşleme Ekle'yi kullanarak bağlanıp kesme noktasına vurabiliyorsanız ancak Hata Ayıklama>Başlat Hata Ayıklama veya F5'i kullanarak bağlanamıyorsanız, proje özelliklerinde büyük olasılıkla bir ayar yanlıştır. HOSTS dosyası kullanıyorsanız, dosyanın da doğru yapılandırıldığından emin olun.

web.config dosyasında hata ayıklamayı yapılandırma

ASP.NET projelerin varsayılan olarak, hata ayıklama ayarları dahil olmak üzere hem uygulama yapılandırması hem de başlatma bilgilerini içeren dosyaları vardır web.config . Dosyaların web.config hata ayıklama için doğru yapılandırılması gerekir. Önceki bölümlerdeki Özellikler ayarları dosyaları güncelleştirir web.config , ancak bunları el ile de yapılandırabilirsiniz.

Uyarı

ASP.NET Core projelerinin başlangıçta web.config dosyaları yoktur, ancak uygulama yapılandırması ve başlatma bilgileri için appsettings.json ve launchSettings.json dosyaları kullanılır. Uygulamanın dağıtılması projede bir web.config dosya veya dosya oluşturur, ancak genellikle hata ayıklama bilgileri içermez.

Tip

Dağıtım işleminiz web.config ayarlarını güncelleştirebilir, bu nedenle hata ayıklamayı denemeden önce web.config'in hata ayıklama için yapılandırıldığından emin olun.

Bir web.config dosyayı hata ayıklama için el ile yapılandırmak için:

  1. Visual Studio'da ASP.NET projesinin web.config dosyasını açın.

  2. Web.config bir XML dosyası olduğundan, etiketlerle işaretlenmiş iç içe bölümler içerir. configuration/system.web/compilation Bölümünü bulun. compilation(Öğe yoksa oluşturun.)

  3. compilation öğesindeki debug özniteliğinin true olarak ayarlandığından emin olun. (Öğe debug özniteliği içermiyorsa, bunu ekleyin ve bunu true olarak ayarlayın.)

    Varsayılan IIS Express sunucusu yerine yerel IIS kullanıyorsanız, öğesindeki targetFramework öznitelik değerinin compilation IIS sunucusundaki çerçeveyle eşleştiğinden emin olun.

    compilation dosyasının web.config öğesi aşağıdaki örnekteki gibi görünmelidir:

    Uyarı

    Bu örnek kısmi web.config bir dosyadır. ve configuration öğelerinde system.web genellikle ek XML bölümleri vardır ve compilation öğesi başka öznitelikler ve öğeler de içerebilir.

    <configuration>
       ...
       <system.web>
           <compilation  debug="true"  targetFramework="4.6.1" ... >
              ...
           </compilation>
       </system.web>
    </configuration>
    

ASP.NET dosyalarda yapılan değişiklikleri web.config otomatik olarak algılar ve yeni yapılandırma ayarlarını uygular. Değişikliklerin etkili olması için bilgisayarı veya IIS sunucusunu yeniden başlatmanız gerekmez.

Bir web sitesi, her birinde dosya bulunan web.config çeşitli sanal dizinler ve alt dizinler içerebilir. ASP.NET uygulamalar, URL yolundaki daha yüksek düzeylerdeki dosyalardan web.config yapılandırma ayarlarını devralır. Hiyerarşik web.config dosya ayarları, hiyerarşideki bunların altındaki tüm ASP.NET uygulamalara uygulanır. Hiyerarşinin alt kısmındaki bir dosyada farklı bir web.config yapılandırma ayarlamak, üstteki dosyadaki ayarları geçersiz kılar.

Örneğin, debug="true" www.microsoft.com/aaa/web.config içinde belirtirseniz, aaa klasöründeki veya aaa alt klasörlerinden herhangi birindeki uygulamalar bu ayarı devralır. Ancak, bu uygulamalardan biri kendi web.config dosyasıyla bu ayarı geçersiz kılarsa, devralma gerçekleşmez.

Önemli

Hata ayıklama modu, uygulamanızın performansını büyük ölçüde azaltır. Bir üretim uygulaması dağıttığınızda veya performans ölçümleri gerçekleştirdiğinizde, web.config içinde debug="false" ayarlayın ve Yayın derlemesi belirtin.