Я пытаюсь устранить некоторые проблемы с производительностью, которые возникают на конкретной странице ASP.NET с помощью Инструмент Microsoft Perfecto в IIS 7.5. Perfecto использует встроенные в IIS ловушки ETW для сообщения о конкретном HTTP-запросе и работает достаточно хорошо.
Однако я хочу, чтобы IIS генерировал трассировки только для одной конкретной страницы, например «Default.aspx» в моем веб-приложении TestApp. Следуя инструкциям на httpTracing справочная страница, Я смогу добавить элемент traceUrls в свой корневой файл web.config для TestApp. Когда я это делаю, это никак не влияет на трассировку.
Например, я использовал следующие настройки в файле web.config, и каждый запрос, который попадает на сервер IIS, отправляет сообщения трассировки, которые, в свою очередь, принимаются Perfecto. (В разделе System.WebServer)
<httpTracing>
<traceUrls>
<add value="/Default.aspx" />
</traceUrls>
</httpTracing>
Затем я обнаружил, что файл applicationHost.config на сервере содержит пустой элемент. Я попытался удалить этот элемент, а также элемент httpTracing в файле web.config. После перезагрузки машины я все еще получал сообщения трассировки! Насколько я понимаю, наличие элемента httpTracing - это то, что контролирует, включена ли трассировка ETW или нет. Я позаботился о том, чтобы в файле machine.config не было ссылки на httpTracing.
В недоумении я решил удалить функцию трассировки IIS с помощью диспетчера серверов. После перезагрузки у меня больше не было трассировки ETW. Затем я переустановил функцию трассировки IIS с помощью диспетчера сервера. Как и ожидалось, элемент httpTracing снова появился в файле applicationhost.config. Сообщения отслеживания снова начали отправляться для всех сайтов и страниц.
Затем я попытался использовать элемент traceUrls на уровне applicationhost.config. Это тоже не отфильтровало и следы.
Я, должно быть, неправильно понимаю что-то важное в том, как работает httpTracing. В Интернете тоже не так много ресурсов, которые могли бы мне помочь.
Может ли кто-нибудь сказать мне, должно ли работать то, что я пытаюсь? Кому-нибудь еще удалось отфильтровать сообщение трассировки на странице с помощью traceUrls?
Я должен отметить, что я также пытался изменить следующий параметр в applicationhost.config на «разрешить». Похоже, это не помогло.
<section name="httpTracing" overrideModeDefault="Allow" />