Collecter des données IntelliTrace à l'extérieur de Visual Studio avec le collecteur autonome

Pour déboguer des applications en production ou d'autres environnements, utilisez le collecteur IntelliTrace pour enregistrer les données de diagnostic dans un fichier journal IntelliTrace (fichier .iTrace).Cela vous permet d'enregistrer ce qui s'est produit dans votre application sans installer Visual Studio ou modifier l'environnement de votre application.Lorsque la collecte des données est terminée, supprimez simplement le collecteur pour le désinstaller.

Observez IntelliTrace en action : Collecte et analyse des données dans l'environnement de production pour le débogage (vidéo Channel 9)

Configuration requise

  • .NET Framework 3.5, 4 ou 4.5

  • Visual Studio Ultimate sur un ordinateur de développement ou un autre ordinateur pour ouvrir les fichiers .iTrace

    [!REMARQUE]

    Veillez à enregistrer vos fichiers de symboles (.pdb).Pour déboguer à l'aide d'IntelliTrace et parcourir le code, vous devez disposer des fichiers sources et des fichiers de symboles correspondants.Consultez Rechercher des fichiers de symboles (.pdb), sources et binaires.

FAQ

  • Quelles sont les applications utilisées par le collecteur ?

  • Comment faire pour démarrer ?

  • Comment obtenir le maximum de données sans ralentir mon application ?

  • Où obtenir des données IntelliTrace ?

Quelles sont les applications utilisées par le collecteur ?

  • Les applications Web ASP.NET hébergées sur les versions 7.0, 7.5 et 8.0 des Services IIS (Internet Information Services)

  • Applications SharePoint 2010

  • Applications de bureau managées (fichiers .exe)

Comment faire pour démarrer ?

  1. Installer le collecteur

  2. Set up permissions for the collector directory.

  3. Installer les applets de commande PowerShell IntelliTrace pour la collecte des données des applications Web ou des applications SharePoint

  4. Configurez les autorisations pour le répertoire de fichiers .iTrace

  5. Collecter des données à partir d'une application Web ou d'une application SharePoint

    ou

    Collecter des données à partir d'une application managée

  6. Ouvrez le fichier .iTrace dans Visual Studio Ultimate

Installer le collecteur

  1. Sur le serveur de votre application, créez le répertoire du collecteur, par exemple : C:\IntelliTraceCollector

  2. Obtenez le collecteur depuis le Centre de téléchargement Microsoft ou du dossier d'installation de Visual Studio :

    • Centre de téléchargement Microsoft :

      1. Sur le serveur de votre application, accédez au Collecteur IntelliTrace de Visual Studio.

      2. En regard de IntelliTraceCollector.exe, choisissez Télécharger.

      3. Enregistrez IntelliTraceCollector.exe au dossier du collecteur, par exemple : C:\IntelliTraceCollector

      4. Exécutez IntelliTraceCollector.exe.Il extrait le fichier IntelliTraceCollection.cab.

      - ou -

    • Dossier d'installation Visual Studio :

      [!REMARQUE]

      Pour obtenir le collecteur qui prend en charge les événements de diagnostic pour les applications SharePoint 2010, téléchargez le Collecteur IntelliTrace de Visual Studio ou vérifiez que vous avez installé Visual Studio 2012.1.

      1. Copiez IntelliTraceCollection.cab à partir du dossier suivant :

        ..\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\11.0.0

      2. Mettez IntelliTraceCollection.cab dans le dossier du collecteur, par exemple : C:\IntelliTraceCollector

  3. Développez IntelliTraceCollection.cab :

    1. Sur le serveur de votre application, ouvrez une fenêtre d'invite de commandes en tant qu'administrateur.

    2. Accédez au répertoire du collecteur, par exemple : C:\IntelliTraceCollector

    3. Utilisez la commande expand, y compris le point (.) à la fin, pour développer IntelliTraceCollection.cab :

      expand /f:* IntelliTraceCollection.cab.

      [!REMARQUE]

      Le point (.) conserve les sous-dossiers qui contiennent des plans de collection localisés.

Configurer les autorisations pour le répertoire du collecteur

  1. Sur le serveur de votre application, ouvrez une fenêtre d'invite de commandes en tant qu'administrateur.

  2. Utilisez la commande icacls Windows pour accorder les autorisations maximales d'administrateur du serveur au répertoire du collecteur.Par exemple :

    icacls "C:\IntelliTraceCollector" /grant "<Domaine\IDadministrateur>":F

  3. Pour collecter les données d'une application Web ou d'une application SharePoint, procédez comme suit :

    1. Accorde à la personne qui exécute les applets de commande PowerShell IntelliTrace les autorisations maximales au dossier du collecteur.

      Par exemple :

      icacls "C:\IntelliTraceCollector" /grant "<Domaine\IDutilisateur>":F

    2. Accorde au pool d'applications pour l'application Web ou l'application SharePoint les autorisations de lecture et d'exécution au dossier du collecteur.

      Par exemple :

      • Pour une application Web du pool d'applications DefaultAppPool :

        icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\DefaultAppPool":RX

      • Pour une application SharePoint du pool d'applications SharePoint - 80 :

        icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\SharePoint - 80":RX

Installer les applets de commande PowerShell IntelliTrace pour la collecte des données des applications Web ou des applications SharePoint

  1. Sur le serveur de votre application, vérifiez que PowerShell est activé.Dans la plupart des versions de Windows Server, ajoutez cette fonctionnalité dans l'outil d'administration Gestionnaire de serveur.

    Ajout de PowerShell à l'aide de Server Manager

  2. Installez les applets de commande PowerShell IntelliTrace.

    1. Ouvrez une fenêtre de commande PowerShell en tant qu'administrateur.

      1. Sélectionnez Démarrer, Tous les programmes, Accessoires, Windows PowerShell.

      2. Choisissez l'une des étapes suivantes :

        • Sur les systèmes d'exploitation de 64 bits, ouvrez le menu contextuel de Windows PowerShell.Sélectionnez Exécuter en tant qu'administrateur.

        • Sur les systèmes d'exploitation de 32 bits, ouvrez le menu contextuel de Windows PowerShell (x86).Sélectionnez Exécuter en tant qu'administrateur.

    2. Dans la fenêtre de commande PowerShell, utilisez la commande Importer-Module pour importer Microsoft.VisualStudio.IntelliTrace.PowerShell.dll.

      Par exemple :

      Import-Module "C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll"

Configurez les autorisations pour le répertoire de fichiers .iTrace

  1. Sur le serveur de votre application, créez le répertoire de fichiers .iTrace, par exemple : C:\IntelliTraceLogFiles

    [!REMARQUE]

    • Pour empêcher de ralentir votre application, choisissez un emplacement sur un disque local ultra-rapide qui n'est pas très actif.

    • L'emplacement des fichiers .iTrace et celui des fichiers du collecteur peuvent être identiques.Toutefois, si vous possédez une application Web ou une application SharePoint, assurez-vous que cet emplacement est situé en dehors du répertoire qui héberge l'application.

    Note de sécuritéNote de sécurité
    • Limitez l'accès au répertoire du fichier .iTrace aux identités requises qui doivent utiliser le collecteur.Un fichier .iTrace peut contenir des informations sensibles, comme des données utilisateur, des bases de données, d'autres emplacements sources et des chaînes de connexion, étant donné qu'IntelliTrace peut enregistrer toutes les données passant dans des paramètres de méthode ou en tant que valeurs de retour.

    • Vérifiez que ceux qui peuvent ouvrir les fichiers .iTrace ont l'autorité pour afficher des données sensibles.Soyez prudent lors du partage des fichiers .iTrace.Si d'autres personnes ont besoin d'y accéder, il est préférable de copier les fichiers dans un emplacement sécurisé partagé.

  2. Pour une application Web ou une application SharePoint, accordez au pool d'applications les autorisations maximales au répertoire de fichiers .iTrace.Vous pouvez utiliser la commande icacls Windows or l'Explorateur Windows (ou l'Explorateur de fichiers).

    Par exemple :

    • Pour configurer les autorisations avec la commande icacls Windows :

      • Pour une application Web du pool d'applications DefaultAppPool :

        icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\DefaultAppPool":F

      • Pour une application SharePoint du pool d'applications SharePoint - 80 :

        icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\SharePoint - 80":F

      ou

    • Pour configurer les autorisations avec l'Explorateur Windows (ou l'Explorateur de fichiers) :

      1. Ouvrez Propriétés pour le répertoire de fichiers .iTrace.

      2. Sous l'onglet Sécurité, cliquez sur Modifier, Ajouter.

      3. Vérifiez que les Principaux de sécurité intégrés apparaissent dans la zone Sélectionnez ce type d'objet.Si ce n'est pas le cas, choisissez Types d’objets pour l'ajouter.

      4. Vérifiez que votre ordinateur local s'affiche dans la zone À partir de cet emplacement.Si ce n'est pas le cas, choisissez Emplacements pour le modifier.

      5. Dans la zone Entrez les noms des objets à sélectionner, ajoutez le pool d'applications pour l'application Web ou l'application SharePoint.

      6. Choisissez Vérifier les noms pour résoudre le nom.Cliquez sur OK.

      7. Vérifiez que le pool d'applications a le Contrôle total.

Collecter des données à partir d'une application Web ou d'une application SharePoint

  1. Pour commencer à collecter les données, ouvrez une fenêtre de commande PowerShell en tant qu'administrateur, puis exécutez cette commande :

    Start-IntelliTraceCollection"<ApplicationPool>"<PathToCollectionPlan><FullPathToITraceFileDirectory>

    Important

    Après avoir exécuté cette commande, tapez O pour confirmer que vous souhaitez commencer à collecter des données.

    Par exemple, pour collecter des données à partir d'une application SharePoint dans le pool d'applications SharePoint - 80 :

    Start-IntelliTraceCollection "SharePoint - 80" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceLogFiles"

    ApplicationPool

    Nom du pool d'applications dans lequel votre application s'exécute

    PathToCollectionPlan

    Chemin d'accès à un plan de collection, fichier .xml qui configure les paramètres du collecteur.

    Vous pouvez spécifier un plan qui est fourni avec le collecteur.Les plans suivants fonctionnent pour des applications Web et des applications SharePoint :

    • collection_plan.ASP.NET.default.xml

      Collecte uniquement les événements IntelliTrace et les événements SharePoint, y compris les exceptions, les appels de base de données et les demandes de serveur Web.

    • collection_plan.ASP.NET.trace.xml

      Collecte les appels de fonction et toutes les données dans collection_plan.ASP.NET.default.xml.Ce plan est un bon pour l'analyse détaillée, mais il peut ralentir davantage votre application par rapport à collection_plan.ASP.NET.de fault.xml.

    Pour empêcher de ralentir votre application, personnalisez ces plans ou créez votre propre plan.Pour des raisons de sécurité, placez tous les plans personnalisés dans l'emplacement sécurisé où sont placés les fichiers de collecteur.Consultez Création et personnalisation des plans de collecte IntelliTrace et Comment obtenir le maximum de données sans ralentir mon application ?

    RemarqueRemarque
    Par défaut, la taille maximale du fichier .iTrace est 100 Mo.Au-delà de cette limite, le collecteur supprime les entrées antérieures du fichier pour faire de la place aux nouvelles.Pour changer ce seuil, modifiez l'attribut MaximumLogFileSize du plan de collecte.

    Où trouver des versions en français de ces plans de collecte ?

    Vous pouvez trouver des plans localisés dans les sous-dossiers du collecteur.

    FullPathToITraceFileDirectory

    Chemin d'accès complet au répertoire de fichiers .iTrace.

    Note de sécuritéNote de sécurité
    Indiquez le chemin complet, et non un chemin d'accès relatif.

    Le collecteur s'attache au pool d'applications et commence la collecte des données.

    Le fichier .iTrace peut-il être ouvert à ce stade ? Non, le fichier est verrouillé pendant la collecte de données.

  2. Reproduisez le problème.

  3. Pour prendre un instantané du fichier .iTrace, utilisez cette syntaxe :

    Checkpoint-IntelliTraceCollection"<ApplicationPool>"

  4. Pour vérifier l'état de la collection, utilisez cette syntaxe :

    Get-IntelliTraceCollectionStatus

  5. Pour arrêter la collecte des données, utilisez cette syntaxe :

    Stop-IntelliTraceCollection"<ApplicationPool>"

    Important

    Après avoir exécuté cette commande, tapez O pour confirmer que vous souhaitez arrêter de collecter des données.Sinon, le collecteur peut continuer de collecter des données, le fichier iTrace reste verrouillé, ou le fichier peut ne pas contenir de données utiles.

  6. Ouvrez le fichier .iTrace dans Visual Studio Ultimate

Collecter des données à partir d'une application managée

  1. Pour démarrer votre application et collecter des données en même temps, utilisez cette syntaxe :

    <FullPathToIntelliTraceCollectorExecutable>\IntellitraceSC.exe launch /cp:<PathToCollectionPlan>/f:<FullPathToITraceFileDirectoryAndFileName><PathToAppExecutableFileAndFileName>

    Par exemple, pour collecter des données à partir d'une application nommée MyApp :

    C:\IntelliTraceCollector\IntelliTraceSC.exe launch /cp:"C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" /f:"C:\IntelliTraceLogFiles\MyApp.itrace" "C:\MyApp\MyApp.exe"

    FullPathToIntelliTraceCollectorExecutable

    Chemin d'accès complet au fichier exécutable du collecteur, IntelliTraceSC.exe

    PathToCollectionPlan

    Chemin d'accès à un plan de collection, fichier .xml qui configure les paramètres du collecteur.

    Vous pouvez spécifier un plan qui est fourni avec le collecteur.Les plans suivants fonctionnent pour les applications managées :

    • collection_plan.ASP.NET.default.xml

      Collecte uniquement des événements IntelliTrace, y compris les exceptions, les appels de base de données et les demandes de serveur Web.

    • collection_plan.ASP.NET.trace.xml

      Collecte les appels de fonction et toutes les données dans collection_plan.ASP.NET.default.xml.Ce plan est un bon pour l'analyse détaillée, mais il peut ralentir davantage votre application par rapport à collection_plan.ASP.NET.de fault.xml.

    Pour empêcher de ralentir votre application, personnalisez ces plans ou créez votre propre plan.Pour des raisons de sécurité, placez tous les plans personnalisés dans l'emplacement sécurisé où sont placés les fichiers de collecteur.Consultez Création et personnalisation des plans de collecte IntelliTrace et Comment obtenir le maximum de données sans ralentir mon application ?

    RemarqueRemarque
    Par défaut, la taille maximale du fichier .iTrace est 100 Mo.Au-delà de cette limite, le collecteur supprime les entrées antérieures du fichier pour faire de la place aux nouvelles.Pour changer ce seuil, modifiez l'attribut MaximumLogFileSize du plan de collecte.

    Où trouver des versions en français de ces plans de collecte ?

    Vous pouvez trouver des plans localisés dans les sous-dossiers du collecteur.

    FullPathToITraceFileDirectoryAndFileName

    Chemin d'accès complet au répertoire des fichiers .iTrace et nom du fichier .iTrace avec l'extension .itrace.

    Note de sécuritéNote de sécurité
    Indiquez le chemin complet, et non un chemin d'accès relatif.

    PathToAppExecutableFileAndFileName

    Chemin d'accès et nom de fichier de votre application managée

  2. Arrêtez la collecte de données en quittant l'application.

  3. Ouvrez le fichier .iTrace dans Visual Studio Ultimate

Ouvrez le fichier .iTrace dans Visual Studio Ultimate

  1. Déplacez le fichier .iTrace ou copiez-le vers un ordinateur à l'aide de Visual Studio Ultimate.

  2. Double-cliquez sur le fichier .iTrace en dehors de Visual Studio ou ouvrez le fichier à partir de Visual Studio.

    Visual Studio affiche la page Résumé IntelliTrace.Dans la plupart des sections, vous pouvez examiner les événements ou les autres éléments, choisir un élément, et démarrer le débogage avec IntelliTrace à l'emplacement où et au moment où un événement s'est produit.Consultez Déboguer votre application avec les fichiers journaux IntelliTrace (.iTrace).

    [!REMARQUE]

    Pour déboguer à l'aide d'IntelliTrace et parcourir le code, vous devez disposer des fichiers sources et des fichiers de symboles correspondants.Assurez-vous que ses fichiers de symboles sont dans le chemin d'accès des symboles de Visual Studio.Dans le cas contraire, Visual Studio ne peut pas résoudre les emplacements source et le message « Symboles introuvables » s'affiche. Consultez Rechercher des fichiers de symboles (.pdb), sources et binaires.

Comment obtenir le maximum de données sans ralentir mon application ?

IntelliTrace peut collecter un grand nombre de données. Son impact sur les performances de votre application dépend donc des données qu'il collecte et du type de code qu'il analyse.Consultez Optimisation de la collecte IntelliTrace sur les serveurs de production.

Voici certains moyens d'obtenir les données sans ralentir votre application :

  • Exécutez le collecteur uniquement lorsque vous suspectez un problème ou que vous pouvez reproduire ce problème.

    Démarrez la collecte, reproduisez le problème, puis arrêtez la collecte.Ouvrez le fichier .iTrace dans Visual Studio Ultimate et examinez les données.Consultez Ouvrez le fichier .iTrace dans Visual Studio Ultimate.

  • Pour les applications Web et SharePoint, le collecteur enregistre des données pour chaque application qui partage le pool d'applications spécifié.Cela peut ralentir les applications qui partagent le même pool d'applications, même si vous avez la possibilité de spécifier uniquement les modules pour une seule application dans un plan de collecte.

    Afin d'éviter que le collecteur ne ralentisse d'autres applications, hébergez chaque application dans son propre pool d'applications.

  • Examinez les événements dans le plan de collecte pour lequel IntelliTrace collecte des données.Modifiez le plan de collecte pour désactiver les événements qui ne sont pas pertinents ou qui ne vous intéressent pas.

    Pour désactiver un événement, affectez à l'attribut enabled pour l'élément <DiagnosticEventSpecification> la valeur false :

    <DiagnosticEventSpecification enabled="false">

    Si l'attribut enabled n'existe pas, l'événement est activé.

    De quelle manière les performances sont-elles améliorées ?

    • Réduisez votre temps de démarrage en désactivant les événements qui ne sont pas pertinents pour l'application.Par exemple, désactivez les événements Windows Workflow pour les applications qui n'utilisent pas Windows Workflow.

    • Améliorez à la fois la performance de démarrage et la performance d'exécution en désactivant des événements de Registre pour les applications qui accèdent au Registre s'ils ne présentent pas de problèmes avec les paramètres du Registre.

  • Examinez les modules dans le plan de collecte pour lequel IntelliTrace collecte des données.Modifier le plan de collecte pour n'y inclure que les modules qui vous intéressent :

    1. Ouvrez le plan de collecte.Recherchez l'élément <ModuleList>.

    2. Dans <ModuleList>, affectez la valeur false à l'attribut isExclusionList.

    3. Utilisez l'élément <Name> pour spécifier chaque module avec l'un des éléments suivants : nom de fichier, valeur de chaîne pour inclure tout module dont le nom contient cette chaîne ou cette clé publique.

    Par exemple, pour collecter des données uniquement à partir du module principal Web de l'application Web Fabrikam Fiber, créez une liste comme celle ci-dessous :

    <ModuleList isExclusionList="false">
       <Name>FabrikamFiber.Web.dll</Name>
    </ModuleList>
    

    Pour collecter des données à partir de tout module dont le nom contient « Fabrikam », créez une liste comme celle ci-dessous :

    <ModuleList isExclusionList="false">
       <Name>Fabrikam</Name>
    </ModuleList>
    

    Pour collecter les données à partir de modules en spécifiant leurs jetons de clé publique, créez une liste comme celle ci-dessous :

    <ModuleList isExclusionList="false">
       <Name>PublicKeyToken:B77A5C561934E089</Name>
       <Name>PublicKeyToken:B03F5F7F11D50A3A</Name>
       <Name>PublicKeyToken:31BF3856AD364E35</Name>
       <Name>PublicKeyToken:89845DCD8080CC91</Name>
       <Name>PublicKeyToken:71E9BCE111E9429C</Name>
    </ModuleList>
    

    De quelle manière les performances sont-elles améliorées ?

    Ainsi, la quantité d'informations sur les appels de méthode et autres données d'instrumentation collectées par IntelliTrace s'en trouve réduite, lorsque l'application démarre et est exécutée.Ces données vous permettent de :

    • Parcourir le code après avoir collecté les données.

    • Examiner les valeurs passées à et retournées par les appels de fonction.

    Pourquoi ne pas plutôt exclure des modules ?

    Par défaut, les plans de collecte excluent des modules en affectant la valeur true à l'attribut isExclusionList.Toutefois, des modules peuvent également être exclus lors de la collecte de données à partir de modules ne répondant pas aux critères de la liste et étant donc susceptibles de ne pas vous intéresser, tels que des modules tiers ou des modules open source.

  • Existe-t-il des données qui ne sont pas collectées par IntelliTrace ?

    Oui, pour minimiser l'impact sur les performances, IntelliTrace limite la collecte de données aux valeurs de types de données primitifs passés à et retournés à partir de méthodes ainsi qu'aux valeurs de types de données primitifs figurant dans les champs sur des objets de niveau supérieur passés à et retournés à partir de méthodes.

    Par exemple, supposez que vous avez une signature de méthode AlterEmployee qui accepte un id entier et un objet oldemployeeEmployee :

    public Employee AlterEmployee(int id, Employee oldemployee)

    Le type Employee a les attributs suivants : Id, Name et HomeAddress.Une relation d'association existe entre Employee et le type Address.

    Relations entre employés et adresse

    Le collecteur enregistre des valeurs pour id, Employee.Id, Employee.Name et l'objet Employee retourné par la méthode AlterEmployee.Toutefois, la seule information enregistrée par le collecteur à propos de l'objet Address se résume au fait que sa valeur est null ou non.Le collecteur n'enregistre pas non plus de données concernant les variables locales dans la méthode AlterEmployee sauf si d'autres méthodes les utilisent en tant que paramètres. Auquel cas, elles sont enregistrées en tant que paramètres de méthode.

Où obtenir des données IntelliTrace ?

Où peut-on obtenir plus d'informations ?

Déboguer votre application avec les fichiers journaux IntelliTrace (.iTrace)

Déboguer votre application en enregistrant l'exécution du code avec IntelliTrace

Hh398365.collapse_all(fr-fr,VS.110).gifBlogs

Utilisation à distance du collecteur autonome IntelliTrace

Création et personnalisation des plans de collecte IntelliTrace

Optimisation de la collecte IntelliTrace sur les serveurs de production.

Blogs Visual Studio ALM et TFS (page en anglais)

Hh398365.collapse_all(fr-fr,VS.110).gifForums

Débogueur Visual Studio (page en anglais)

Hh398365.collapse_all(fr-fr,VS.110).gifVideos

Vidéo Channel 9 : Collecte et analyse des données IntelliTrace