Dela via


Felsöka ditt Service Fabric-program med Visual Studio

Felsöka ett lokalt Service Fabric-program

Viktigt!

Fjärrfelsökning stöds inte i VS 2022

Du kan spara tid och pengar genom att distribuera och felsöka ditt Azure Service Fabric-program i ett lokalt datorutvecklingskluster. Visual Studio 2019 eller 2015 kan distribuera programmet till det lokala klustret och automatiskt ansluta felsökningsprogrammet till alla instanser av ditt program. Visual Studio måste köras som administratör för att ansluta felsökningsprogrammet.

  1. Starta ett lokalt utvecklingskluster genom att följa stegen i Konfigurera din Service Fabric-utvecklingsmiljö.

  2. Tryck på F5 eller klicka på Felsök>Starta felsökning.

    Skärmbild som visar felsökningsmenyn.

  3. Ange brytpunkter i koden och gå igenom programmet genom att klicka på kommandon i felsökningsmenyn.

    Kommentar

    Visual Studio ansluter till alla instanser av ditt program. När du går igenom kod kan brytpunkter drabbas av flera processer som resulterar i samtidiga sessioner. Prova att inaktivera brytpunkterna när de har träffats, genom att göra varje brytpunkt villkorad på tråd-ID:t eller med hjälp av diagnostiska händelser.

  4. Fönstret Diagnostikhändelser öppnas automatiskt så att du kan visa diagnostikhändelser i realtid.

    Visa diagnostikhändelser i realtid

  5. Du kan också öppna fönstret Diagnostikhändelser i Cloud Explorer. Under Service Fabric högerklickar du på valfri nod och väljer Visa strömningsspårningar.

    Öppna fönstret diagnostikhändelser

    Om du vill filtrera dina spårningar till en specifik tjänst eller ett visst program aktiverar du strömningsspårningar för den specifika tjänsten eller programmet.

  6. Diagnostikhändelserna kan visas i den automatiskt genererade ServiceEventSource.cs-filen och anropas från programkoden.

    ServiceEventSource.Current.ServiceMessage(this, "My ServiceMessage with a parameter {0}", result.Value.ToString());
    
  7. Fönstret Diagnostikhändelser stöder filtrering, pausning och inspektion av händelser i realtid. Filtret är en enkel strängsökning av händelsemeddelandet, inklusive dess innehåll.

    Filtrera, pausa och återuppta eller inspektera händelser i realtid

  8. Felsökning av tjänster är som att felsöka andra program. Du ställer normalt in Brytpunkter via Visual Studio för enkel felsökning. Även om Reliable Collections replikeras över flera noder implementerar de fortfarande IEnumerable. Den här implementeringen innebär att du kan använda resultatvyn i Visual Studio medan du felsöker för att se vad du har lagrat i. Om du vill göra det anger du en brytpunkt var som helst i koden.

    Börja felsöka ett program

Köra ett skript som en del av felsökningen

I vissa scenarier kan du behöva köra ett skript som en del av att starta en felsökningssession (t.ex. när du inte använder Standardtjänster).

I Visual Studio kan du lägga till en fil med namnet Start-Service.ps1 i mappen Scripts i Service Fabric Application-projektet (.sfproj). Det här skriptet anropas när programmet har skapats i det lokala klustret.

Felsöka ett Service Fabric-fjärrprogram

Om dina Service Fabric-program körs på ett Service Fabric-kluster i Azure kan du fjärrfelsöka dessa program direkt från Visual Studio.

Kommentar

Funktionen kräver Service Fabric SDK 2.0 och Azure SDK för .NET 2.9.

Varning

Fjärrfelsökning är avsett för utvecklings-/testscenarier och ska inte användas i produktionsmiljöer på grund av påverkan på program som körs.

  1. Gå till klustret i Cloud Explorer. Högerklicka och välj Aktivera felsökning

    Aktivera fjärrfelsökning

    Den här åtgärden startar processen med att aktivera fjärrfelsökningstillägget på dina klusternoder och nödvändiga nätverkskonfigurationer.

  2. Högerklicka på klusternoden i Cloud Explorer och välj Bifoga felsökningsprogram

    Bifoga felsökningsprogram

  3. I dialogrutan Bifoga till process väljer du den process som du vill felsöka och klickar på Bifoga

    Välj process

    Namnet på den process som du vill koppla till är lika med namnet på ditt serviceprojekts sammansättningsnamn.

    Felsökningsprogrammet ansluter till alla noder som kör processen.

    • Om du felsöker en tillståndslös tjänst är alla instanser av tjänsten på alla noder en del av felsökningssessionen.

    • Om du felsöker en tillståndskänslig tjänst är endast den primära repliken av en partition aktiv och fångas därför av felsökningsprogrammet. Om den primära repliken flyttas under felsökningssessionen är bearbetningen av repliken fortfarande en del av felsökningssessionen.

    • Om du bara vill fånga relevanta partitioner eller instanser av en viss tjänst kan du använda villkorliga brytpunkter för att bara bryta en viss partition eller instans.

      Villkorsstyrd brytpunkt

      Kommentar

      För närvarande stöder vi inte felsökning av ett Service Fabric-kluster med flera instanser av samma körbara tjänstnamn.

  4. När du har felsökt programmet kan du inaktivera fjärrfelsökningstillägget genom att högerklicka på klustret i Cloud Explorer och välja Inaktivera felsökning

    Inaktivera fjärrfelsökning

Strömmande spårningar från en fjärrklusternod

Du kan också strömma spårningar direkt från en fjärrklusternod till Visual Studio. Med den här funktionen kan du strömma ETW-spårningshändelser som skapats på en Service Fabric-klusternod.

Kommentar

Den här funktionen kräver Service Fabric SDK 2.0 och Azure SDK för .NET 2.9. Den här funktionen stöder endast kluster som körs i Azure.

Varning

Direktuppspelningsspårningar är avsedda för utvecklings-/testscenarier och ska inte användas i produktionsmiljöer på grund av påverkan på de program som körs. I ett produktionsscenario bör du förlita dig på vidarebefordran av händelser med hjälp av Azure Diagnostics.

  1. Gå till klustret i Cloud Explorer. Högerklicka och välj Aktivera spårning av direktuppspelning

    Aktivera fjärruppspelningsspårningar

    Den här åtgärden startar processen med att aktivera strömningsspårningstillägget på dina klusternoder samt nödvändiga nätverkskonfigurationer.

  2. Expandera nodes-elementet i Cloud Explorer, högerklicka på den nod som du vill strömma spårningar från och välj Visa direktuppspelningsspårningar

    Visa fjärruppspelningsspårningar

    Upprepa steg 2 för så många noder som du vill se spårningar från. Varje nodström visas i ett dedikerat fönster.

    Nu kan du se de spårningar som genereras av Service Fabric och dina tjänster. Om du vill filtrera händelserna för att bara visa ett specifikt program skriver du bara in namnet på programmet i filtret.

    Visa strömningsspårningar

  3. När du är klar med strömningsspårningar från klustret kan du inaktivera fjärruppspelningsspårningar genom att högerklicka på klustret i Cloud Explorer och välja Inaktivera spårning av direktuppspelning

    Inaktivera fjärruppspelningsspårningar

Nästa steg