Partager via


Comment : modifier des fichiers Web.Config pour instrumenter et profiler des applications Web ASP.NET compilées dynamiquement

Vous pouvez utiliser la méthode d'instrumentation des outils de profilage Visual Studio pour collecter des données de temporisation détaillées, des données d'allocation de mémoire .NET et des données sur la durée de vie des objets .NET à partir d'applications Web ASP.NET compilées de manière dynamique.

Cette rubrique explique comment modifier le fichier de configuration web.config pour permettre l'instrumentation et le profilage d'applications Web ASP.NET.

Notes

Vous ne devez pas nécessairement modifier le fichier web.config lorsque vous utilisez la méthode de profilage de l'échantillonnage ou lorsque vous souhaitez instrumenter un module ASP.NET pré-compilé.

La racine d'un fichier web.config est l'élément configuration. Pour instrumenter et profiler une application Web ASP.NET compilée de manière dynamique, vous devez ajouter ou modifier les éléments suivants :

  • Un élément configuration/runtime/assemblyBinding/dependentAssembly qui identifie l'assembly Microsoft.VisualStudio.Enterprise.ASPNetHelper qui contrôle le profilage. L'élément dependentAssembly contient deux éléments enfants : assemblyIdentity et codeBase.

  • Élément configuration/system.web/compilation qui identifie l'étape de compilation post-processus du profileur pour l'assembly cible.

  • Deux éléments add qui identifient l'emplacement des outils de profilage sont ajoutés à la section configuration/appSettings.

Nous vous recommandons de créer une copie du fichier web.config. d'origine que vous pouvez utiliser pour restaurer la configuration de l'application.

Pour ajouter l'assembly ASPNetHelper en tant qu'élément configuration/runtime/assemblyBinding/dependentAssembly

  1. Si nécessaire, ajoutez l'élément runtime en tant qu'élément enfant de l'élément configuration ; sinon, passez à l'étape suivante.

    L'élément runtime ne contient pas d'attributs. L'élément configuration ne peut avoir qu'un seul élément enfant runtime.

  2. Si nécessaire, ajoutez l'élément assemblyBinding en tant qu'élément enfant de l'élément runtime ; sinon, passez à l'étape suivante.

    L'élément runtime ne peut avoir qu'un seul élément assemblyBinding.

  3. Ajoutez le nom et la valeur d'attribut suivants à l'élément assemblyBinding :

    Nom d'attribut

    Valeur d'attribut

    Xmlns

    urn:schemas-microsoft-com:asm.v1

  4. Ajoutez un élément dependentAssembly en tant qu'élément enfant de l'élément assemblyBinding.

    L'élément dependentAssembly ne contient pas d'attributs.

  5. Ajoutez un élément assemblyIdentity en tant qu'enfant de l'élément dependentAssembly.

  6. Ajoutez les noms et valeurs d'attribut suivants à l'élément assemblyIdentity :

    Nom d'attribut

    Valeur d'attribut

    name

    Microsoft.VisualStudio.Enterprise.ASPNetHelper

    PublicKeyToken

    b03f5f7f11d50a3a

    culture

    Neutral

  7. Ajoutez un élément codeBase en tant qu'enfant de l'élément dependentAssembly.

  8. Ajoutez les noms et valeurs d'attribut suivants à l'élément codeBase :

    Nom d'attribut

    Valeur d'attribut

    version

    10.0.0.0

    href

    PathToASPNetHelperDll

    PathToASPNetHelperDll est l'URL de fichier de Microsoft.VisualStudio.Enterprise.ASPNetHelper.dll. Si Visual Studio est installé à l'emplacement par défaut, la valeur href doit être C:/Program%20Files/Microsoft%20Visual%20Studio%202010.0/Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.Enterprise.ASPNetHelper.DLL

    <configuration>
        <runtime>
            <assemblyBinding 
                xmlns="urn:schemas-microsoft-com:asm.v1"
            >
                <dependentAssembly>
                    <assemblyIdentity                         name="Microsoft.VisualStudio.Enterprise.ASPNetHelper" 
                        publicKeyToken="b03f5f7f11d50a3a"                         culture="neutral" 
                    />
                    <codeBase 
                        version="10.0.0.0"
                        href="file:///C:/Program%20Files/Microsoft%20Visual%20Studio%2010.0/Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.Enterprise.ASPNetHelper.DLL" 
                    />
                </dependentAssembly>
            </assemblyBinding>
        </runtime>

Pour ajouter l'étape post-processus du profileur à l'élément configuration/system.web/compilation

  1. Si nécessaire, ajoutez l'élément system.web en tant qu'élément enfant de l'élément configuration ; sinon, passez à l'étape suivante.

    L'élément system.web ne contient pas d'attributs. L'élément configuration ne peut avoir qu'un seul élément enfant system.web.

  2. Si nécessaire, ajoutez l'élément compilation en tant qu'élément enfant de l'élément system.web ; sinon, passez à l'étape suivante.

    L'élément system.web ne peut avoir qu'un seul élément enfant compilation.

  3. Supprimez tous les attributs existants de l'élément compilation et ajoutez le nom et la valeur d'attribut suivants :

    Nom d'attribut

    Valeur d'attribut

    assemblyPostProcessorType

    Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.ASPNetHelper, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

    <configuration>
        <runtime>
        . . .
        </runtime>
        <system.web>
            <compilation
                assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter,
                    Microsoft.VisualStudio.Enterprise.ASPNetHelper,
                    Version=10.0.0.0,
                    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
            />
        </system.web>
    <configuration>

Pour ajouter les paramètres d'emplacement du profileur à l'élément configuration/appSettings

  1. Si nécessaire, ajoutez l'élément appSettings en tant qu'élément enfant de l'élément configuration ; sinon, passez à l'étape suivante.

    L'élément appSettings ne contient pas d'attributs. L'élément configuration ne peut avoir qu'un seul élément enfant appSettings.

  2. Ajoutez un élément add en tant qu'enfant de l'élément appSettings.

  3. Ajoutez les noms et valeurs d'attribut suivants à l'élément add :

    Nom d'attribut

    Valeur d'attribut

    key

    Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation

    value

    PerformanceToolsFolder\VSInstr.Exe

  4. Ajoutez un autre élément add en tant qu'enfant de l'élément appSettings.

  5. Ajoutez les noms et valeurs d'attribut suivants à cet élément add :

    Nom d'attribut

    Valeur d'attribut

    key

    Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrTools

    value

    PerformanceToolsFolder

    PerformanceToolsFolder est le chemin d'accès des fichiers exécutables du profileur. Si Visual Studio est installé à l'emplacement par défaut, la valeur sera C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools

    <configuration>
        <runtime>
        . . .
        </runtime>
        . . .
        <system.web>
        </system.web>
        <appSettings>
            <add
                key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation"
                value="C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools\vsinstr.exe"
        />
            <add
                key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrTools"
                value="C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools\"
            />
        </appSettings>
    </configuration>

Exemple

L'exemple suivant est un fichier web.config. complet qui permet l'instrumentation et le profilage d'applications Web ASP.NET compilées de manière dynamique. Cet exemple suppose qu'il n'y avait pas d'autres paramètres dans le fichier avant la modification.

<?xml version="1.0"?>
    <configuration>
        <runtime>
            <assemblyBinding 
                xmlns="urn:schemas-microsoft-com:asm.v1"
            >
                <dependentAssembly>
                    <assemblyIdentity 
                        name="Microsoft.VisualStudio.Enterprise.ASPNetHelper" 
                        publicKeyToken="b03f5f7f11d50a3a"
                        culture="neutral" 
                    />
                    <codeBase 
                        version="10.0.0.0"
                        href="file:///C:/Program%20Files/Microsoft%20Visual%20Studio%2010.0/Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.Enterprise.ASPNetHelper.DLL" 
                    />
                </dependentAssembly>
            </assemblyBinding>
        </runtime>
        <system.web>
            <compilation
                assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter,
                    Microsoft.VisualStudio.Enterprise.ASPNetHelper,
                    Version=10.0.0.0,
                    Culture=neutral,
                    PublicKeyToken=b03f5f7f11d50a3a" 
            />
        </system.web>
        <appSettings>
            <add
                key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation"
                value="C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools\vsinstr.exe"
            />
            <add
                key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrTools"
                value="C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools\"
            />
        </appSettings>
    </configuration>

Voir aussi

Tâches

Comment : instrumenter une application Web ASP.NET compilée dynamiquement et collecter des données de temporisation détaillées avec le profileur en utilisant la ligne de commande

Comment : instrumenter une application Web ASP.NET compilée dynamiquement et collecter des données de mémoire en utilisant la ligne de commande du profileur