Практическое руководство. Изменение файлов Web.Config для инструментирования и профилирования динамически скомпилированных веб-приложений ASP.NET
Метод инструментирования средств профилирования Visual Studio можно использовать для сбора подробных сведений об использовании времени, данных о выделении памяти .NET, а также времени существования объектов .NET, предоставляемых динамически скомпилированными веб-приложениями ASP.NET.
В этом разделе описывается процедура изменения файла конфигурации web.config для обеспечения возможности инструментирования и профилирования веб-приложений ASP.NET.
![]() |
---|
При использовании для профилирования метода выборки и инструментировании предварительно скомпилированного модуля ASP.NET файл web.config изменять не нужно. |
Корневым элементов файла web.config является элемент configuration.Для инструментирования и профилирования динамически скомпилированных веб-приложений ASP.NET следует добавить или изменить следующие элементы.
Элемент configuration/runtime/assemblyBinding/dependentAssembly, который позволяет идентифицировать сборку Microsoft.VisualStudio.Enterprise.ASPNetHelper, управляющую профилированием.Элемент dependentAssembly содержит два дочерних элемента: assemblyIdentity и codeBase.
Элемент configuration/system.web/compilation, позволяющий идентифицировать этап компиляции после обработки профилировщиком для целевой сборки.
Два элемента add, позволяющие идентифицировать расположение средств профилирования, которые добавляются в раздел configuration/appSettings.
Рекомендуется создать копию исходного файла web.config, которую можно будет использовать для восстановления конфигурации приложения.
Добавление сборки ASPNetHelper в качестве элемента configuration/runtime/assemblyBinding/dependentAssembly
При необходимости добавьте элемент runtime в качестве дочернего элемента configuration. Если потребности в этом нет, перейдите к следующему шагу.
У элемента runtime отсутствуют атрибуты.У элемента configuration может быть только один дочерний элемент runtime.
При необходимости добавьте элемент assemblyBinding в качестве дочернего элемента runtime. Если потребности в этом нет, перейдите к следующему шагу.
У элемента runtime может быть только один элемент assemblyBinding.
Добавьте следующее имя и значение атрибута в элемент assemblyBinding:
Имя атрибута
Значение атрибута
Xmlns
urn:schemas-microsoft-com:asm.v1
Добавьте элемент dependentAssembly в качестве дочернего элемента assemblyBinding.
У элемента dependentAssembly отсутствуют атрибуты.
Добавьте элемент assemblyIdentity в качестве дочернего элемента dependentAssembly.
Добавьте следующие имена и значения атрибута в элемент assemblyIdentity.
Имя атрибута
Значение атрибута
name
Microsoft.VisualStudio.Enterprise.ASPNetHelper
PublicKeyToken
b03f5f7f11d50a3a
culture
Neutral
Добавьте элемент codeBase в качестве дочернего элемента dependentAssembly.
Добавьте следующие имена и значения атрибута в элемент codeBase:
Имя атрибута
Значение атрибута
version
10.0.0.0
href
PathToASPNetHelperDll
PathToASPNetHelperDll — это URL-адрес файла библиотеки Microsoft.VisualStudio.Enterprise.ASPNetHelper.dll.Если программа 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
При необходимости добавьте элемент system.web в качестве дочернего элемента configuration. Если потребности в этом нет, перейдите к следующему шагу.
У элемента system.web отсутствуют атрибуты.У элемента configuration может быть только один дочерний элемент system.web.
При необходимости добавьте элемент compilation в качестве дочернего элемента system.web. Если потребности в этом нет, перейдите к следующему шагу.
У элемента system.web может быть только один дочерний элемент compilation.
Удалите существующие атрибуты из элемента 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
При необходимости добавьте элемент appSettings в качестве дочернего элемента configuration. Если потребности в этом нет, перейдите к следующему шагу.
У элемента appSettings отсутствуют атрибуты.У элемента configuration может быть только один дочерний элемент appSettings.
Добавьте элемент add в качестве дочернего элемента appSettings.
Добавьте следующие имена и значения атрибута в элемент add.
Имя атрибута
Значение атрибута
key
Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation
value
PerformanceToolsFolder\VSInstr.Exe
Добавьте другой элемент add в качестве дочернего элемента appSettings.
Добавьте следующие имена и значения атрибута в этот элемент 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>
Пример
Ниже приведено полное содержимое файла web.config, позволяющего выполнять инструментирование и профилирование динамически скомпилированных веб-приложений ASP.NET.В этом примере предполагается, что перед изменением в файле не было других параметров.
<?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>