ASP.NET Core uygulamalarında hata ayıklama

Not

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.

Önemli

Bu bilgiler, ticari olarak piyasaya sürülmeden önce önemli ölçüde değiştirilebilen bir yayın öncesi ürünle ilgilidir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.

Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.

Bu makalede, tarayıcı geliştirici araçlarıyla veya tümleşik bir geliştirme ortamıyla (IDE) uygulamalarda hata ayıklama Blazor WebAssembly da dahil olmak üzere uygulamaların hatalarını ayıklama Blazor açıklanmaktadır.

Blazor Web Apps,Visual Studio veya Visual Studio Code'da hata ayıklanabilir.

Blazor WebAssembly uygulamalarda hata ayıklanabilir:

  • Visual Studio veya Visual Studio Code'da.
  • Microsoft Edge, Google Chrome ve Firefox gibi Chromium tabanlı tarayıcılarda tarayıcı geliştirici araçlarını kullanma.

Hata ayıklama için Blazor WebAssembly kullanılabilir senaryolar şunlardır:

  • Kesme noktalarını ayarlayın ve kaldırın.
  • IDE'lerde hata ayıklama desteğiyle uygulamayı çalıştırın.
  • Kodda tek adım.
  • IDE'lerde klavye kısayoluyla kod yürütmeyi sürdürme.
  • Yereller penceresinde yerel değişkenlerin değerlerini gözlemleyin.
  • JavaScript ile .NET arasındaki çağrı zincirleri de dahil olmak üzere çağrı yığınına bakın.
  • Hata ayıklama için Visual Studio tercihleri tarafından yapılandırılan bir sembol sunucusu kullanın.

Desteklenmeyen senaryolar şunlardır:

Blazor Server uygulamalar Visual Studio veya Visual Studio Code'da hata ayıklanabilir.

Blazor WebAssembly uygulamalarda hata ayıklanabilir:

  • Visual Studio veya Visual Studio Code'da.
  • Microsoft Edge ve Google Chrome dahil olmak üzere Chromium tabanlı tarayıcılarda tarayıcı geliştirici araçlarını kullanma.

Uygulamalar için Blazor WebAssembly desteklenmeyen senaryolar şunlardır:

  • Kesme noktalarını ayarlayın ve kaldırın.
  • IDE'lerde hata ayıklama desteğiyle uygulamayı çalıştırın.
  • Kodda tek adım.
  • IDE'lerde klavye kısayoluyla kod yürütmeyi sürdürme.
  • Yereller penceresinde yerel değişkenlerin değerlerini gözlemleyin.
  • JavaScript ile .NET arasındaki çağrı zincirleri de dahil olmak üzere çağrı yığınına bakın.
  • Yerel olmayan senaryolarda hata ayıklama (örneğin, Linux için Windows Alt Sistemi (WSL) veya Visual Studio Codespaces).
  • Hata ayıklama için bir sembol sunucusu kullanın.

Blazor Server uygulamalar Visual Studio veya Visual Studio Code'da hata ayıklanabilir.

Blazor WebAssembly uygulamalarda hata ayıklanabilir:

  • Visual Studio veya Visual Studio Code'da.
  • Microsoft Edge ve Google Chrome dahil olmak üzere Chromium tabanlı tarayıcılarda tarayıcı geliştirici araçlarını kullanma.

Uygulamalar için Blazor WebAssembly desteklenmeyen senaryolar şunlardır:

  • Kesme noktalarını ayarlayın ve kaldırın.
  • IDE'lerde hata ayıklama desteğiyle uygulamayı çalıştırın.
  • Kodda tek adım.
  • IDE'lerde klavye kısayoluyla kod yürütmeyi sürdürme.
  • Yereller penceresinde yerel değişkenlerin değerlerini gözlemleyin.
  • JavaScript ile .NET arasındaki çağrı zincirleri de dahil olmak üzere çağrı yığınına bakın.
  • Hata ayıklama ara sunucusu çalışmadan önce uygulama başlatma sırasında kesme noktalarına basın. Bu, dosyadaki Program kesme noktalarını ve uygulamadan istenen ilk sayfa tarafından yüklenen bileşenlerin yaşam döngüsü yöntemlerindeki kesme noktalarını OnInitialized{Async} içerir.
  • Yerel olmayan senaryolarda hata ayıklama (örneğin, Linux için Windows Alt Sistemi (WSL) veya Visual Studio Codespaces).
  • Hata ayıklama için bir sembol sunucusu kullanın.

Önkoşullar

Bu bölümde hata ayıklama önkoşulları açıklanmaktadır.

Tarayıcı önkoşulları

Aşağıdaki tarayıcıların en son sürümü:

  • Google Chrome
  • Microsoft Edge
  • Firefox (yalnızca tarayıcı geliştirici araçları)

Hata ayıklama için aşağıdaki tarayıcıların en son sürümü gerekir:

  • Google Chrome (varsayılan)
  • Microsoft Edge

Güvenlik duvarlarının veya ara sunucuların hata ayıklama ara sunucusu (NodeJS işlem) ile iletişimi engellemediğinden emin olun. Daha fazla bilgi için Güvenlik duvarı yapılandırması bölümüne bakın.

Not

macOS üzerinde Apple Safari şu anda desteklenmiyor.

IDE önkoşulları

Visual Studio veya Visual Studio Code'un en son sürümü gereklidir.

Visual Studio Code önkoşulları

Visual Studio Code, Visual Studio Code için C# Geliştirme Seti gerektirir (VS Code'da C# kullanmaya başlama). Uzantıyı bulmak için Visual Studio Code Uzantıları Marketi'nde uzantı listesini "c# dev kit" ile filtreleyin:

Visual Studio Code Uzantıları Marketi'nde C# Geliştirme Seti

C# Dev Kit'in yüklenmesi aşağıdaki ek uzantıları otomatik olarak yükler:

Uyarı veya hatalarla karşılaşırsanız, sorunu açıklayan bir sorun (microsoft/vscode-dotnettoolsGitHub deposu) açabilirsiniz.

Uygulama yapılandırması önkoşulları

Bu alt bölümdeki yönergeler istemci tarafı hata ayıklama için geçerlidir.

Properties/launchSettings.json Başlangıç projesinin dosyasını açın. Dosyanın profiles düğümünün her başlatma profilinde aşağıdaki inspectUri özelliğin varlığını onaylayın. Aşağıdaki özellik yoksa her profile ekleyin:

"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"

Özelliği inspectUri :

  • IDE'nin uygulamanın bir Blazor uygulama olduğunu algılamasını sağlar.
  • Betik hata ayıklama altyapısına hata ayıklama proxy'si aracılığıyla Blazortarayıcıya bağlanmasını sağlar.

WebSocket protokolü (wsProtocol), ana bilgisayar (), bağlantı noktası (url.hostname) ve başlatılan tarayıcıdaki (url.portbrowserInspectUri) denetçi URI'sinin yer tutucu değerleri çerçeve tarafından sağlanır.

Paketler

Blazor Web Apps: Microsoft.AspNetCore.Components.WebAssembly.ServerTarayıcı hata ayıklama konağını paylaşan derlemeler için bir iç pakete (Microsoft.NETCore.BrowserDebugHost.Transport) başvurur.

Blazor Server: Microsoft.AspNetCore.Components.WebAssembly.ServerTarayıcı hata ayıklama ana bilgisayarını paylaşan derlemeler için bir iç pakete (Microsoft.NETCore.BrowserDebugHost.Transport) başvurur.

Tek başına Blazor WebAssembly: Microsoft.AspNetCore.Components.WebAssembly.DevServerUygulama oluştururken Blazor kullanılacak geliştirme sunucusu. Chromium geliştirici araçları içinde hata ayıklama Blazor WebAssembly uygulamaları için ara yazılım eklemek için dahili olarak çağırırWebAssemblyNetDebugProxyAppBuilderExtensions.UseWebAssemblyDebugging.

Barındırılan Blazor WebAssembly:

Not

.NET uygulamalarına paket ekleme hakkında yönergeler için, Paket tüketimi iş akışında (NuGet belgeleri)paketleri yüklemek ve yönetmek altındaki makalelere bakın. NuGet.org'da doğru paket sürümlerini onaylayın.

Blazor IDE'de Web Uygulamasında Hata Ayıklama

Bu bölümdeki örnekte, Otomatik (Sunucu ve WebAssembly) etkileşimli işleme moduna ve bileşen başına etkileşim konumuna sahip bir Web Uygulaması oluşturduğunuz Blazor varsayılır.

  1. Uygulamayı açın.
  2. İstemci projesinin currentCount++;.Client() bileşenindeki Counter (Pages/Counter.razor) satırda bir kesme noktası ayarlayın.
  3. Uygulamayı hata ayıklayıcıda çalıştırmak için F5 tuşuna basın.
  4. Tarayıcıda sayfasında /countersayfasına gidinCounter. Hata ayıklama ara sunucusunun yüklenmesi ve çalıştırılması için birkaç saniye bekleyin. Kesme noktasına gitmek için Bana tıklayın düğmesini seçin.
  5. Visual Studio'da Yerel Ayarlar penceresinde alanın değerini currentCount inceleyin.
  6. Yürütmeye devam etmek için F5 tuşuna basın.

Kesme noktaları, statik olarak işlenmiş ve etkileşimli olarak işlenmiş sunucu tarafı bileşenlerinde sunucu projesinde de isabet edilebilir.

  1. Hata ayıklayıcıyı durdurun.

  2. Aşağıdaki bileşeni sunucu uygulamasına ekleyin. Bileşen Etkileşimli Sunucu işleme modunu (InteractiveServer ) uygular.

    Components/Pages/Counter2.razor:

    @page "/counter-2"
    @rendermode InteractiveServer
    
    <PageTitle>Counter 2</PageTitle>
    
    <h1>Counter 2</h1>
    
    <p role="status">Current count: @currentCount</p>
    
    <button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
    
    @code {
        private int currentCount = 0;
    
        private void IncrementCount()
        {
            currentCount++;
        }
    }
    
  3. Bileşendeki satırda currentCount++;Counter2 bir kesme noktası ayarlayın.

  4. Uygulamayı hata ayıklayıcıda çalıştırmak için F5 tuşuna basın.

  5. Tarayıcıda sayfasında /counter-2sayfasına gidinCounter2. Hata ayıklama ara sunucusunun yüklenmesi ve çalıştırılması için birkaç saniye bekleyin. Kesme noktasına gitmek için Bana tıklayın düğmesini seçin.

  6. Yürütmeye devam etmek için F5 tuşuna basın.

Hata ayıklama ara sunucusu çalıştırılmadan önce uygulama başlatma sırasında kesme noktalarına isabet edilmez . Bu, dosyadaki Program kesme noktalarını ve uygulamadan istenen ilk sayfa tarafından yüklenen bileşenlerin yaşam döngüsü yöntemlerindeki kesme noktalarını OnInitialized{Async} içerir.

Blazor Server IDE'de uygulamada hata ayıklama

  1. Uygulamayı açın.
  2. Bileşendeki (Pages/Counter.razor) satırda currentCount++;Counter bir kesme noktası ayarlayın.
  3. Uygulamayı hata ayıklayıcıda çalıştırmak için F5 tuşuna basın.
  4. Tarayıcıda sayfasında /countersayfasına gidinCounter. Hata ayıklama ara sunucusunun yüklenmesi ve çalıştırılması için birkaç saniye bekleyin. Kesme noktasına gitmek için Bana tıklayın düğmesini seçin.
  5. Visual Studio'da Yerel Ayarlar penceresinde alanın değerini currentCount inceleyin.
  6. Yürütmeye devam etmek için F5 tuşuna basın.

Hata ayıklama ara sunucusu çalıştırılmadan önce uygulama başlatma sırasında kesme noktalarına isabet edilmez . Bu, dosyadaki Program kesme noktalarını ve uygulamadan istenen ilk sayfa tarafından yüklenen bileşenlerin yaşam döngüsü yöntemlerindeki kesme noktalarını OnInitialized{Async} içerir.

Blazor WebAssembly IDE'de uygulamada hata ayıklama

  1. Uygulamayı açın.
  2. Bileşendeki (Pages/Counter.razor) satırda currentCount++;Counter bir kesme noktası ayarlayın.
  3. Uygulamayı hata ayıklayıcıda çalıştırmak için F5 tuşuna basın.
  4. Tarayıcıda sayfasında /countersayfasına gidinCounter. Hata ayıklama ara sunucusunun yüklenmesi ve çalıştırılması için birkaç saniye bekleyin. Kesme noktasına gitmek için Bana tıklayın düğmesini seçin.
  5. Visual Studio'da Yerel Ayarlar penceresinde alanın değerini currentCount inceleyin.
  6. Yürütmeye devam etmek için F5 tuşuna basın.

Hata ayıklama ara sunucusu çalıştırılmadan önce uygulama başlatma sırasında kesme noktalarına isabet edilmez . Bu, dosyadaki Program kesme noktalarını ve uygulamadan istenen ilk sayfa tarafından yüklenen bileşenlerin yaşam döngüsü yöntemlerindeki kesme noktalarını OnInitialized{Async} içerir.

Hata ayıklayıcı desteği

Hata ayıklayıcısı desteği ile <DebuggerSupport>{VALUE}</DebuggerSupport>etkinleştirildiğinde, yer tutucunun true veya falseolduğu {VALUE} çalışma zamanı için hata ayıklama etkinleştirilir.

Çerçeve varsayılan olarak, BlazorHata Ayıklama olmayan tüm yapılandırmalar için hata ayıklayıcı desteğini devre dışı bırakır. Hata ayıklama dışı yapılandırma için hata ayıklayıcı desteğini etkinleştirmek için uygulamanın proje dosyasına bir <DebuggerSupport> özellik ekleyin.

Aşağıdaki örnekte, özel "DebugCustom" yapılandırma için hata ayıklayıcısı desteği etkinleştirilmiştir:

<DebuggerSupport Condition="'$(Configuration)' == 'DebugCustom'">true</DebuggerSupport>

Daha fazla bilgi için bkz Blazor WebAssembly . özel hata ayıklayıcısı yapılandırması (dotnet/runtime #96239).

IDE'de barındırılan Blazor WebAssembly uygulamada hata ayıklama

  1. Server proje Çözüm Gezgini'de seçili durumdayken, uygulamayı hata ayıklayıcıda çalıştırmak için F5 tuşuna basın.

    Google Chrome veya Microsoft Edge gibi Chromium tabanlı bir tarayıcıyla hata ayıklama yaparken, kullanıcının profiliyle var olan bir tarayıcı penceresinde sekme açmak yerine hata ayıklama oturumu için ayrı bir profille yeni bir tarayıcı penceresi açılabilir. Kullanıcının profiliyle hata ayıklama bir gereksinimse, aşağıdaki yaklaşımlardan birini benimseyin:

  2. ProjedeClient, bileşendeki ()Pages/Counter.razor satırında Counter bir kesme noktası currentCount++; ayarlayın.

  3. Tarayıcıda sayfasında /countersayfasına gidinCounter. Hata ayıklama ara sunucusunun yüklenmesi ve çalıştırılması için birkaç saniye bekleyin. Kesme noktasına gitmek için Bana tıklayın düğmesini seçin.

  4. Visual Studio'da Yerel Ayarlar penceresinde alanın değerini currentCount inceleyin.

  5. Yürütmeye devam etmek için F5 tuşuna basın.

Ayrıca projede sunucu kodunda Server hata ayıklayabilirsiniz:

  1. içindeki OnInitializedAsyncsayfasında bir kesme noktası Pages/FetchData.razor ayarlayın.
  2. eylem yönteminde WeatherForecastControllerGet bir kesme noktası ayarlayın.
  3. Sunucuya Fetch Data HTTP isteği göndermeden hemen önce bileşendeki FetchData ilk kesme noktasına gitmek için sayfaya göz atın.
  4. Yürütmeye devam etmek için F5 tuşuna basın ve ardından içindeki sunucudaki WeatherForecastControllerkesme noktasına basın.
  5. Yürütmenin devam etmesine izin vermek ve tarayıcıda işlenen hava durumu tahmin tablosunu görmek için F5 tuşuna yeniden basın.

Hata ayıklama ara sunucusu çalıştırılmadan önce uygulama başlatma sırasında kesme noktalarına isabet edilmez . Bu, dosyadaki Program kesme noktalarını ve uygulamadan istenen ilk sayfa tarafından yüklenen bileşenlerin yaşam döngüsü yöntemlerindeki kesme noktalarını OnInitialized{Async} içerir.

Hata Ayıklamadan Başlama [Ctrl+F5 (Windows) veya ⌘+F5 (macOS)] desteklenmez. Uygulama Hata ayıklama yapılandırmasında çalıştırıldığında hata ayıklama yükü her zaman küçük bir performans düşüşine neden olur.

Mevcut bir Visual Studio Code hata ayıklama oturumuna ekleme

Çalışan Blazor bir uygulamaya eklemek için dosyayı açın .vscode/launch.json ve yer tutucuyu {URL} uygulamanın çalıştığı URL ile değiştirin:

{
  "name": "Attach and Debug",
  "type": "blazorwasm",
  "request": "attach",
  "url": "{URL}"
}

Visual Studio Code başlatma seçenekleri

Aşağıdaki tabloda yer alan başlatma yapılandırma seçenekleri hata ayıklama türü (.vscode/launch.json) için blazorwasm desteklenir.

Seçenek Açıklama
browser Hata ayıklama oturumu için başlatacak tarayıcı. Ayarlanan edge veya chrome. varsayılan değeridir edge.
cwd Uygulamanın başlatıldığı çalışma dizini.
request Bir uygulamaya hata ayıklama oturumu Blazor WebAssembly başlatmak ve eklemek veya attach zaten çalışan bir uygulamaya hata ayıklama oturumu eklemek için kullanınlaunch.
timeout Hata ayıklama oturumunun eklenmesi için beklenmesi gereken milisaniye sayısı. Varsayılan değer 30.000 milisaniyedir (30 saniye).
trace Hata ayıklayıcıdan JS günlük oluşturmak için kullanılır. Günlük oluşturmak için olarak true ayarlayın.
url Hata ayıklama sırasında tarayıcıda açılacak URL.
webRoot Web sunucusunun mutlak yolunu belirtir. Bir uygulama bir alt yoldan sunulursa ayarlanmalıdır.

Aşağıdaki tabloda yer alan ek seçenekler yalnızca barındırılan Blazor WebAssembly uygulamalar için geçerlidir.

Seçenek Açıklama
env Başlatılan işleme sağlayabilecek ortam değişkenleri. Yalnızca olarak ayarlanmışsa hostedtruegeçerlidir.
hosted Barındırılan trueBlazor WebAssembly bir uygulama başlatılıp hata ayıklanırsa olarak ayarlanmalıdır.
program Barındırılan uygulamanın sunucusunu çalıştırmak için yürütülebilir dosya başvurusu. ise hostedtrueayarlanmalıdır.

Google Chrome veya Microsoft Edge ile hata ayıklama Blazor WebAssembly

Bu bölümdeki kılavuzda hata ayıklama Blazor WebAssembly uygulamaları şunlara uygulanır:

  • Windows veya macOS üzerinde çalışan Google Chrome.
  • Windows üzerinde çalışan Microsoft Edge.
  1. uygulamasını ile dotnet runbir komut kabuğunda çalıştırın.

  2. Bir tarayıcı başlatın ve uygulamanın URL'sine gidin.

  3. Uzaktan hata ayıklamayı başlatmak için şu tuşa basın:

    • Windows üzerinde Shift+Alt+d.
    • macOS'ta shift+⌘+d.

    Tarayıcı, varsayılan olmayan uzaktan hata ayıklama etkin olarak çalışıyor olmalıdır. Uzaktan hata ayıklama devre dışı bırakılırsa, hata ayıklama bağlantı noktası açıkken tarayıcıyı başlatma yönergeleriyle birlikte hata ayıklanabilir tarayıcı sekmesi bulunamıyor hata sayfası işlenir. Tarayıcınızın yönergelerini izleyin.

    Uzaktan hata ayıklamayı etkinleştirme yönergelerini takip ettikten sonra uygulama yeni bir tarayıcı penceresinde açılır. Yeni tarayıcı penceresinde Kısayol Tuşu bileşimine basarak uzaktan hata ayıklamayı başlatın:

    • Windows üzerinde Shift+Alt+d.
    • macOS'ta shift+⌘+d.

    Uygulamanın hayaletli görüntüsünü gösteren yeni bir pencere geliştirici araçları tarayıcı sekmesi açılır.

    Not

    Yönergeleri izleyerek uzaktan hata ayıklamanın etkinleştirildiği yeni bir tarayıcı sekmesi açtıysanız, ilk sekme uygulamayı ve ikinci sekmede hata ayıklayıcısını çalıştırarak özgün tarayıcı penceresini kapatabilirsiniz.

  4. Bir dakika sonra Kaynaklar sekmesinde uygulamanın .NET derlemelerinin ve sayfalarının listesi gösterilir.

  5. file:// Düğümü açın. Bileşen kodunda (.razor dosyalar) ve C# kod dosyalarında (.cs ) kod uygulamanın tarayıcı sekmesinde (uzaktan hata ayıklamayı başlattıktan sonra açılan ilk sekme) yürütülürken ayarladığınız kesme noktalarına isabet edilir. Bir kesme noktasına çarptıktan sonra, hata ayıklama sekmesinde kod aracılığıyla tek adımlı (F10) veya devam ettir (F8) kod yürütme.

Chromium tabanlı tarayıcı hata ayıklaması için, Blazor Chrome Geliştirici Araçları Protokolü'ne uygulayan ve ile protokolü genişleten bir hata ayıklama proxy'si sağlar. NET'e özgü bilgiler. Hata ayıklama klavye kısayolu basıldığında, Blazor ara sunucudaki Chrome Geliştirici Araçları'nı gösterir. Ara sunucu, hata ayıklamak istediğiniz tarayıcı penceresine bağlanır (bu nedenle uzaktan hata ayıklamayı etkinleştirmeniz gerekir).

Firefox ile uygulamada Blazor WebAssembly hata ayıklama

Bu bölümdeki kılavuz, Windows üzerinde çalışan Firefox'taki hata ayıklama Blazor WebAssembly uygulamalarını uygular.

Firefox ile bir Blazor WebAssembly uygulamada hata ayıklamak için tarayıcıyı uzaktan hata ayıklama için yapılandırmanız ve .NET WebAssembly hata ayıklama ara sunucusu aracılığıyla tarayıcı geliştirici araçlarını kullanarak tarayıcıya bağlanmanız gerekir.

Not

Visual Studio'dan Firefox'ta hata ayıklama şu anda desteklenmiyor.

Geliştirme sırasında Firefox'ta bir Blazor WebAssembly uygulamada hata ayıklamak için:

  1. Firefox'ı yapılandırma:
    • Yeni bir tarayıcı sekmesinde açın about:config . Görüntülenen uyarıyı okuyun ve kapatın.
    • değerini Trueolarak ayarlayarak etkinleştirindevtools.debugger.remote-enabled.
    • değerini Trueolarak ayarlayarak etkinleştirindevtools.chrome.enabled.
    • değerini Falseolarak ayarlayarak devre dışı bırakındevtools.debugger.prompt-connection.
  2. Tüm Firefox örneklerini kapatın.
  3. uygulamasını ile dotnet runbir komut kabuğunda çalıştırın.
  4. Firefox tarayıcısını yeniden başlatın ve uygulamaya gidin.
  5. Yeni bir tarayıcı sekmesinde açın about:debugging . Bu sekmeyi açık bırakın.
  6. Uygulamanın çalıştığı sekmeye geri dönün. Shift Alt+d tuşlarına+basarak uzaktan hata ayıklamayı başlatın.
  7. Debugger sekmesinde, düğüm altında file:// hata ayıklamak istediğiniz uygulama kaynak dosyasını açın ve bir kesme noktası ayarlayın. Örneğin, bileşenin ()Pages/Counter.razor yöntemindeki CounterIncrementCount satırda bir kesme noktası currentCount++; ayarlayın.
  8. Counter Uygulamanın tarayıcı sekmesinde bileşen sayfasına (/counter) gidin ve kesme noktasına gitmek için sayaç düğmesini seçin.
  9. Hata ayıklama sekmesinde yürütmeye devam etmek için F5 tuşuna basın.

İşlenmeyen özel durumlarda kesme

Hata ayıklayıcısı, geliştirici kodu tarafından işlenmeyen özel durumları yakaladığından Blazor , işlenmeyen özel durumları varsayılan olarak kesmez.

İşlenmeyen özel durumları kesmek için:

  • Visual Studio'da hata ayıklayıcının özel durum ayarlarını (Hata Ayıklama>Windows>Özel Durumu Ayarlar) açın.
  • Aşağıdaki JavaScript Özel Durumları ayarlarını yapın:
    • Tüm Özel Durumlar
    • Yakalanmayan Özel Durumlar

Tarayıcı kaynak eşlemeleri

Tarayıcı kaynak eşlemeleri, tarayıcının derlenmiş dosyaları özgün kaynak dosyalarına geri eşlemesini sağlar ve istemci tarafı hata ayıklaması için yaygın olarak kullanılır. Ancak şu Blazor anda C# öğesini doğrudan JavaScript/WASM ile eşlemez. Bunun yerine, Blazor kaynak eşlemelerin uygun olmaması için tarayıcı içinde IL yorumlaması yapar.

Güvenlik duvarı yapılandırması

Güvenlik duvarı hata ayıklama ara sunucusuyla iletişimi engelliyorsa, tarayıcı ile NodeJS işlem arasında iletişime izin veren bir güvenlik duvarı özel durum kuralı oluşturun.

Uyarı

Güvenlik açıkları oluşturmamak için güvenlik duvarı yapılandırmasında dikkatli bir değişiklik yapılmalıdır. Güvenlik yönergelerini dikkatle uygulayın, en iyi güvenlik uygulamalarını izleyin ve güvenlik duvarı üreticisi tarafından verilen uyarılara uyun.

İşlemle açık iletişime izin verilir NodeJS :

  • Güvenlik duvarının özelliklerine ve yapılandırmasına bağlı olarak Node sunucusunu herhangi bir bağlantıya açar.
  • Ağınıza bağlı olarak riskli olabilir.
  • Yalnızca geliştirici makinelerinde önerilir.

Mümkünse, yalnızca güvenilir veya özel ağlarda işlemle NodeJSaçık iletişime izin verin.

Windows Güvenlik Duvarı yapılandırma kılavuzu için bkz. Gelen Programı veya Hizmet Kuralı Oluşturma. Daha fazla bilgi için, Windows Güvenlik Duvarı belge kümesindeki Gelişmiş Güvenlik özellikli Windows Defender Güvenlik Duvarı ve ilgili makalelere bakın.

Sorun giderme

Hatalarla karşı karşınıza çıkarsa aşağıdaki ipuçları yardımcı olabilir:

  • Kesme noktalarını kaldırma:
    • Google Chrome: Hata Ayıklayıcı sekmesinde tarayıcınızda geliştirici araçlarını açın. Konsolda, kesme noktalarını kaldırmak için komutunu yürütebilirsiniz localStorage.clear() .
    • Microsoft Edge: Uygulama sekmesinde Yerel depolama'yı açın. Siteye sağ tıklayın ve Temizle'yi seçin.
  • ASP.NET Core HTTPS geliştirme sertifikasını yüklediğinizi ve güvendiğinizi onaylayın. Daha fazla bilgi için bkz . ASP.NET Core'da HTTPS'yi zorunlu kılma.
  • Visual Studio, Araçlar>Seçenekler>Hata Ayıklama Genel bölümündeki ASP.NET için JavaScript hata ayıklamasını>etkinleştir (Chrome ve Edge) seçeneğini gerektirir. Bu, Visual Studio için varsayılan ayardır. Hata ayıklama çalışmıyorsa seçeneğin belirlendiğini onaylayın.
  • Ortamınız bir HTTP ara sunucusu kullanıyorsa, ara sunucu atlama ayarlarına eklendiğinden emin olun localhost . Bu, ortam değişkenini ikisinde NO_PROXY de ayarlayarak yapılabilir:
    • Projenin launchSettings.json dosyası.
    • Tüm uygulamalara uygulanacağı kullanıcı veya sistem ortamı değişkenleri düzeyinde. Ortam değişkeni kullanırken, değişikliğin etkili olması için Visual Studio'yu yeniden başlatın.
  • Güvenlik duvarlarının veya ara sunucuların hata ayıklama ara sunucusu (NodeJS işlem) ile iletişimi engellemediğinden emin olun. Daha fazla bilgi için Güvenlik duvarı yapılandırması bölümüne bakın.

Kesme noktaları OnInitialized{Async} isabetli değil

Çerçevenin Blazor hata ayıklama proxy'si uygulama başlangıcında anında başlatılmaz, bu nedenle yaşam döngüsü yöntemlerindeki kesme noktalarına OnInitialized{Async} isabet edilmeyebilir. Hata ayıklama ara sunucusuna kesme noktasına ulaşmadan önce başlatılması için bir süre vermek için yöntem gövdesinin başlangıcına bir gecikme eklemenizi öneririz. Gecikmenin uygulamanın bir if yayın derlemesinde mevcut olmadığından emin olmak için bir derleyici yönergesine göre gecikmeyi ekleyebilirsiniz.

OnInitialized:

protected override void OnInitialized()
{
#if DEBUG
    Thread.Sleep(10000);
#endif

    ...
}

OnInitializedAsync:

protected override async Task OnInitializedAsync()
{
#if DEBUG
    await Task.Delay(10000);
#endif

    ...
}

Visual Studio (Windows) zaman aşımı

Visual Studio, hata ayıklama bağdaştırıcısının zaman aşımına ulaşıldığını belirterek başlatamadığı bir özel durum oluşturursa, zaman aşımını kayıt defteri ayarıyla ayarlayabilirsiniz:

VsRegEdit.exe set "<VSInstallFolder>" HKCU JSDebugger\Options\Debugging "BlazorTimeoutInMilliseconds" dword {TIMEOUT}

{TIMEOUT} Önceki komuttaki yer tutucu milisaniye cinsindendir. Örneğin, bir dakika olarak 60000atanır.