다음을 통해 공유


방법: 계측할 Web.Config 파일 수정 및 동적으로 컴파일된 ASP.NET 웹 응용 프로그램 프로파일링

Visual Studio 프로파일링 도구의 계측 방법을 사용하여 동적으로 컴파일된 ASP.NET 웹 응용 프로그램에서 자세한 타이밍 데이터, .NET 메모리 할당 데이터 및 .NET 개체 수명 데이터를 수집할 수 있습니다.

이 항목에서는 web.config 구성 파일을 수정하여 ASP.NET 웹 응용 프로그램의 계측 및 프로파일링을 사용하도록 설정하는 방법에 대해 설명합니다.

[!참고]

샘플링 프로파일링 방법을 사용하는 경우나 미리 컴파일된 ASP.NET 모듈을 계측하려는 경우에는 web.config 파일을 수정할 필요가 없습니다.

web.config 파일의 루트는 configuration 요소입니다.동적으로 컴파일된 ASP.NET 웹 응용 프로그램을 계측하고 프로파일링하려면 다음 요소를 추가하거나 수정해야 합니다.

  • configuration/runtime/assemblyBinding/dependentAssembly 요소 - 프로파일링을 제어하는 Microsoft.VisualStudio.Enterprise.ASPNetHelper 어셈블리를 식별합니다.dependentAssembly 요소에는 assemblyIdentitycodeBase라는 두 개의 자식 요소가 포함됩니다.

  • configuration/system.web/compilation 요소 - 대상 어셈블리에 대한 프로파일러의 후처리 컴파일 단계를 식별합니다.

  • 두 개의 add 요소 - configuration/appSettings 섹션에서 프로파일링 도구가 추가되는 위치를 식별합니다.

응용 프로그램의 구성을 복원하는 데 사용할 수 있도록 원본 web.config 파일의 복사본을 만드는 것이 좋습니다.

ASPNetHelper 어셈블리를 configuration/runtime/assemblyBinding/dependentAssembly 요소로 추가하려면

  1. 필요하면 runtime 요소를 configuration 요소의 자식 요소로 추가하고, 그렇지 않으면 다음 단계로 이동합니다.

    runtime 요소에는 특성이 없습니다.configuration 요소에는 runtime 자식 요소가 하나만 있을 수 있습니다.

  2. 필요하면 assemblyBinding 요소를 runtime 요소의 자식 요소로 추가하고, 그렇지 않으면 다음 단계로 이동합니다.

    runtime 요소에는 assemblyBinding 요소가 하나만 있을 수 있습니다.

  3. assemblyBinding 요소에 다음 특성 이름 및 값을 추가합니다.

    특성 이름

    특성 값

    Xmlns

    urn:schemas-microsoft-com:asm.v1

  4. dependentAssembly 요소를 assemblyBinding 요소의 자식 요소로 추가합니다.

    dependentAssembly 요소에는 특성이 없습니다.

  5. assemblyIdentity 요소를 dependentAssembly 요소의 자식으로 추가합니다.

  6. assemblyIdentity 요소에 다음 특성 이름 및 값을 추가합니다.

    특성 이름

    특성 값

    name

    Microsoft.VisualStudio.Enterprise.ASPNetHelper

    PublicKeyToken

    b03f5f7f11d50a3a

    culture

    Neutral

  7. codeBase 요소를 dependentAssembly 요소의 자식으로 추가합니다.

  8. codeBase 요소에 다음 특성 이름 및 값을 추가합니다.

    특성 이름

    특성 값

    version

    10.0.0.0

    href

    PathToASPNetHelperDll

    PathToASPNetHelperDll은 Microsoft.VisualStudio.Enterprise.ASPNetHelper.dll의 파일 URL입니다.Visual Studio가 기본 위치에 설치된 경우 href 값은 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>

configuration/system.web/compilation 요소에 프로파일러 후처리 단계를 추가하려면

  1. 필요하면 system.web 요소를 configuration 요소의 자식 요소로 추가하고, 그렇지 않으면 다음 단계로 이동합니다.

    system.web 요소에는 특성이 없습니다.configuration 요소에는 system.web 자식 요소가 하나만 있을 수 있습니다.

  2. 필요하면 compilation 요소를 system.web 요소의 자식 요소로 추가하고, 그렇지 않으면 다음 단계로 이동합니다.

    system.web 요소에는 compilation 자식 요소가 하나만 있을 수 있습니다.

  3. compilation 요소에서 모든 기존 특성을 제거하고 다음 특성 이름 및 값을 추가합니다.

    특성 이름

    특성 값

    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>

configuration/appSettings 요소에 프로파일러 위치 설정을 추가하려면

  1. 필요하면 appSettings 요소를 configuration 요소의 자식 요소로 추가하고, 그렇지 않으면 다음 단계로 이동합니다.

    appSettings 요소에는 특성이 없습니다.configuration 요소에는 appSettings 자식 요소가 하나만 있을 수 있습니다.

  2. add 요소를 appSettings 요소의 자식으로 추가합니다.

  3. add 요소에 다음 특성 이름 및 값을 추가합니다.

    특성 이름

    특성 값

    key

    Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation

    value

    PerformanceToolsFolder\VSInstr.Exe

  4. 또 하나의 add 요소를 appSettings 요소의 자식으로 추가합니다.

  5. add 요소에 다음 특성 이름 및 값을 추가합니다.

    특성 이름

    특성 값

    key

    Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrTools

    value

    PerformanceToolsFolder

    PerformanceToolsFolder는 프로파일러 실행 파일의 경로입니다.Visual Studio가 기본 위치에 설치된 경우 이 값은 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>

예제

다음은 동적으로 컴파일된 ASP.NET 웹 응용 프로그램의 계측 및 프로파일링을 사용하도록 설정하는 전체 web.config 파일입니다.이 예제에서는 수정하기 전에 파일에 다른 설정이 있었던 것으로 가정합니다.

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

참고 항목

작업

방법: 명령줄에서 프로파일러를 사용하여 동적으로 컴파일된 ASP.NET 웹 응용 프로그램 계측 및 자세한 타이밍 데이터 수집

방법: 프로파일러 명령줄을 통해 동적으로 컴파일된 ASP.NET 웹 응용 프로그램 계측 및 메모리 데이터 수집