Megosztás a következőn keresztül:


Üzenetfolyam áttekintése

Az összekapcsolt szolgáltatásokat tartalmazó elosztott rendszerekben meg kell határozni a szolgáltatások közötti oksági kapcsolatokat. Fontos tisztában lenni azokkal a különböző összetevőkkel, amelyek egy kérésfolyamat részét képezték olyan kritikus helyzetek támogatásához, mint az állapotfigyelés, a hibaelhárítás és a kiváltó okok elemzése. A különböző szolgáltatások közötti nyomkövetések korrelációjának lehetővé tétele érdekében a 4. .NET-keretrendszer a következő funkciókkal bővítettük a támogatást:

  • Elemzési nyomkövetés: Nagy teljesítményű és alacsony részletességű nyomkövetési funkció az Event Tracing for Windows (ETW) használatával.

  • A WCF/WF-szolgáltatások végpontok közötti tevékenységmodellje: Ez a funkció támogatja a névterek és System.Workflow.ComponentModel a System.ServiceModel névterek által létrehozott nyomkövetések korrelációját.

  • ETW-nyomkövetés a WF-hez: Ez a funkció a WF-szolgáltatások által létrehozott nyomkövetési rekordokat használja a munkafolyamat aktuális állapotának és állapotának láthatósága érdekében.

A nyomkövetési vagy nyomkövetési rekordban naplózott hibák kódhibák vagy helytelenül formázott üzenetek megkeresésére használhatók. Az esemény üzenetfejlécében található Korrelációs csomópont ActivityId tulajdonsága használható a hibás tevékenység meghatározására. Az üzenetfolyam-nyomkövetés tevékenységazonosító szerinti engedélyezéséről az Üzenetfolyam-nyomkövetés konfigurálása című témakörben olvashat. Ez a témakör bemutatja, hogyan engedélyezheti az üzenetfolyam-nyomkövetést az első lépések oktatóanyagában létrehozott projektben.

Üzenetfolyam-nyomkövetés engedélyezése az első lépések oktatóanyagában

  1. Nyissa meg a Eseménynapló a Start, a Futtatás és a Beírás eventvwr.exegombra kattintva.

  2. Ha még nem engedélyezte az elemzési nyomkövetést, bontsa ki az Alkalmazások és szolgáltatások naplói, a Microsoft, a Windows és az Application Server-Applications elemet. Válassza a Nézet, elemzési és hibakeresési naplók megjelenítése lehetőséget. Kattintson a jobb gombbal az Elemzés elemre, és válassza a Napló engedélyezése lehetőséget. Hagyja nyitva Eseménynapló, hogy a nyomkövetések megtekinthetők legyenek.

  3. Nyissa meg a Visual Studio 2012 Első lépések oktatóanyagában létrehozott mintát. Vegye figyelembe, hogy a Szolgáltatás létrehozásához rendszergazdaként kell futtatnia a Visual Studio 2012-t. Ha telepítve vannak a WCF-minták, megnyithatja az első lépéseket, amely az oktatóanyagban létrehozott befejezett projektet tartalmazza.

  4. Kattintson a jobb gombbal a szolgáltatásprojektre, és válassza a Hozzáadás, új elem lehetőséget. Válassza az Alkalmazáskonfigurációs fájl lehetőséget, és kattintson az OK gombra.

  5. Adja hozzá a következő kódot az előző lépésben létrehozott App.Config fájlhoz.

    <system.serviceModel>
      <diagnostics>
        <endToEndTracing propagateActivity="true" messageFlowTracing="true"/>
      </diagnostics>
    </system.serviceModel>
    
  6. Futtassa a kiszolgálóalkalmazást hibakeresés nélkül a CTRL+F5 billentyűkombináció lenyomásával. Az ügyfélprojekt végrehajtásához kattintson a jobb gombbal az ügyfélprojektre, és válassza a Hibakeresés, Új példány indítása lehetőséget.

  7. Az ügyfél és a kiszolgáló közötti események nyomon követéséhez adja hozzá az alábbiakat az ügyfélprojekt alkalmazáskonfigurációs fájljába.

    <diagnostics>
      <endToEndTracing propagateActivity="true" messageFlowTracing="true"/>
    </diagnostics>
    
  8. Az ügyfél Program.cs adja hozzá a következő using irányelvet.

    using System.Diagnostics;
    
  9. Main Az ügyfélprojekt program.cs fájljának metódusában állítsa be a nyomkövetési GUID propagálását az eseménynaplóban.

    Guid guid = Guid.NewGuid();
    Trace.CorrelationManager.ActivityId = guid;
    
  10. Frissítse és vizsgálja meg az elemzési naplót . Keressen egy 220-os eseményazonosítójú eseményt. Jelölje ki az eseményt, és kattintson a Részletek fülre az előnézeti panelen. Ez az esemény tartalmazni fogja a hívási tevékenység korrelációs azonosítóját.

    <Correlation ActivityID="{A066CCF1-8AB3-459B-B62F-F79F957A5036}" />
    

    Feljegyzés

    Az ActivityID-ben ugyanazzal a GUID azonosítóval rendelkező összes esemény egy kéréshez kapcsolódik. Ez egy adott ügyfélről egy adott szolgáltatásra vonatkozó üzenetek korrelálásához használható. Ha az ügyfél másik szolgáltatást hívott, akkor ugyanazt az ügyfelet az ActivityID azonosíthatja.

  11. Bizonyos esetekben az ActivityID az eredeti GUID-ról egy új ActivityID azonosítóra válthat. Ebben az esetben átadási esemény lesz kibocsátva. Ez az eseményazonosító 499, és az esemény a fejlécben a következő adatokat tartalmazza.

    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <System>
            <Provider Name="Microsoft-Windows-Application Server-Applications" Guid="{c651f5f6-1c0d-492e-8ae1-b4efd7c9d503}" />
            <EventID>499</EventID>
            ...
            <Correlation ActivityID="{A066CCF1-8AB3-459B-B62F-F79F957A5036}" RelatedActivityID="{85FC0930-9C49-42DA-804B-A7368104BD1B}" />
            ...
       </System>
    </Event>
    

    Feljegyzés

    Az átviteli esemény rögzíti az aktív ActivityID változását az ActivityID azonosítóként megadott GUID-ról a RelatedActivityID azonosítóként megadott GUID-ra. Az átadási esemény kibocsátása után minden esemény az új GUID azonosítót fogja tartalmazni ActivityID-ként.