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
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.
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.
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
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.
Ajoutez un élément assemblyIdentity en tant qu'enfant de l'élément dependentAssembly.
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
Ajoutez un élément codeBase en tant qu'enfant de l'élément dependentAssembly.
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
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.
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.
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
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.
Ajoutez un élément add en tant qu'enfant de l'élément appSettings.
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
Ajoutez un autre élément add en tant qu'enfant de l'élément appSettings.
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>