Compartir a través de


Cómo: Modificar archivos web.config para instrumentar y generar perfiles de aplicaciones web ASP.NET compiladas dinámicamente

Puede utilizar el método de instrumentación de las herramientas de generación de perfiles de Visual Studio para recopilar datos detallados de tiempo, datos de asignación de memoria de .NET y datos de duración de objetos de .NET en aplicaciones web ASP.NET compiladas dinámicamente.

En este tema se describe cómo modificar el archivo de configuración web.config para habilitar la instrumentación y la generación de perfiles de aplicaciones web ASP.NET.

Nota

No necesita modificar el archivo web.config si usa el método de generación de perfiles mediante muestreo o si desea instrumentar un módulo ASP.NET precompilado.

El elemento raíz de un archivo web.config es el elemento configuration. Para instrumentar y generar perfiles de una aplicación web ASP.NET compilada dinámicamente, debe agregar o modificar los elementos siguientes:

  • Un elemento configuration/runtime/assemblyBinding/dependentAssembly que identifica el ensamblado Microsoft.VisualStudio.Enterprise.ASPNetHelper que controla la generación de perfiles. El elemento dependentAssembly contiene dos elementos secundarios: assemblyIdentity y codeBase.

  • Un elemento configuration/system.web/compilation que identifica el paso de compilación posterior al proceso del generador de perfiles para el ensamblado de destino.

  • Dos elementos add que identifican la ubicación de las herramientas de generación de perfiles se agregan a la sección configuration/appSettings.

Se recomienda crear una copia del archivo web.config original que puede utilizar para restaurar la configuración de la aplicación.

Para agregar el ensamblado ASPNetHelper como un elemento configuration/runtime/assemblyBinding/dependentAssembly

  1. Si es necesario, agregue el elemento runtime como un elemento secundario del elemento configuration; de lo contrario, vaya al paso siguiente.

    El elemento runtime no tiene atributos. El elemento configuration solamente puede tener un elemento secundario runtime.

  2. Si es necesario, agregue el elemento assemblyBinding como un elemento secundario del elemento runtime; de lo contrario, vaya al paso siguiente.

    El elemento runtime solamente puede tener un elemento assemblyBinding.

  3. Agregue el siguiente nombre y valor de atributo al elemento assemblyBinding:

    Nombre de atributo

    Valor de atributo

    Xmlns

    urn:schemas-microsoft-com:asm.v1

  4. Agregue un elemento dependentAssembly como elemento secundario del elemento assemblyBinding.

    El elemento dependentAssembly no tiene atributos.

  5. Agregue un elemento assemblyIdentity como elemento secundario del elemento dependentAssembly.

  6. Agregue los siguientes nombres y valores de atributo al elemento assemblyIdentity:

    Nombre de atributo

    Valor de atributo

    name

    Microsoft.VisualStudio.Enterprise.ASPNetHelper

    PublicKeyToken

    b03f5f7f11d50a3a

    culture

    Neutral

  7. Agregue un elemento codeBase como elemento secundario del elemento dependentAssembly.

  8. Agregue los siguientes nombres y valores de atributo al elemento codeBase:

    Nombre de atributo

    Valor de atributo

    version

    10.0.0.0

    href

    PathToASPNetHelperDll

    PathToASPNetHelperDll es la dirección URL de archivo Microsoft.VisualStudio.Enterprise.ASPNetHelper.dll. Si Visual Studio se instala en la ubicación predeterminada, el valor de href debe ser 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>

Para agregar el paso posterior al proceso del generador de perfiles al elemento configuration/system.web/compilation

  1. Si es necesario, agregue el elemento system.web como elemento secundario del elemento configuration; de lo contrario, vaya al paso siguiente.

    El elemento system.web no tiene atributos. El elemento configuration solamente puede tener un elemento secundario system.web.

  2. Si es necesario, agregue el elemento compilation como elemento secundario del elemento system.web; de lo contrario, vaya al paso siguiente.

    El elemento system.web solamente puede tener un elemento secundario compilation.

  3. Quite cualquier atributo existente del elemento compilation y agregue el siguiente nombre y valor de atributo:

    Nombre de atributo

    Valor de atributo

    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>

Para agregar la configuración de ubicación del generador de perfiles al elemento configuration/appSettings

  1. Si es necesario, agregue el elemento appSettings como elemento secundario del elemento configuration; de lo contrario, vaya al paso siguiente.

    El elemento appSettings no tiene atributos. El elemento configuration solamente puede tener un elemento secundario appSettings.

  2. Agregue un elemento add como elemento secundario del elemento appSettings.

  3. Agregue los siguientes nombres y valores de atributo al elemento add:

    Nombre de atributo

    Valor de atributo

    key

    Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation

    value

    PerformanceToolsFolder\VSInstr.Exe

  4. Agregue otro elemento add como elemento secundario del elemento appSettings.

  5. Agregue los siguientes nombres y valores de atributo a este elemento add:

    Nombre de atributo

    Valor de atributo

    key

    Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrTools

    value

    PerformanceToolsFolder

    PerformanceToolsFolder es la ruta de acceso de los archivos ejecutables del generador de perfiles. Si Visual Studio se instala en la ubicación predeterminado, el valor será 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>

Ejemplo

A continuación se muestra un archivo web.config completo que habilita la instrumentación y la generación de perfiles de aplicaciones web ASP.NET compiladas dinámicamente. En este ejemplo se supone que no había ninguna otra configuración en el archivo antes de la modificación.

<?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>

Vea también

Tareas

Cómo: Instrumentar una aplicación web ASP.NET compilada dinámicamente y recopilar datos detallados de control de tiempo con el generador de perfiles utilizando la línea de comandos

Cómo: Instrumentar una aplicación web ASP.NET compilada dinámicamente y recopilar datos de memoria mediante la línea de comandos del generador de perfiles