Случай Медленного Демонстрационного примера Представления ведущих идей

В 2009 я участвовал в представлении ведущих идей на конференции по US TechEd Microsoft в комнату более чем 5000 посетителей 1 Билла Вегта, старшего вице-президента маркетинга Windows, ведомого представление ведущих идей, и проводил экскурсию фокусируемых пользователем функций Windows 7, Иэна Макдоналда, Генерального директора Windows Server, демонстрируемой новой функциональности в Hyper-V и Windows Server 2008 R2, и я демонстрировал IT Проориентированные улучшения в Windows 7 и Microsoft Desktop Optimization Pack (MDOP).

Я показал функции как настройки Policy BitLocker-To-Go Group, возможности дистанционной работы версии 2 Windows PowerShell, возможность PowerShell написать сценарий Групповых объектов Политики, Настольная Виртуализация Microsoft Enterprise (MED-V), и как комбинация Приложения-V, профилей пользователя роуминга, и перенаправления папки включает заменимому сценарию PC с минимальным временем простоя. Одна точка зрения, которую я подтверждал, была фактом, что мы прилагали все усилия, чтобы гарантировать, что исправления совместимости приложения (вызывал контейнеры), что Специалисты по ИТ разработали для работы приложений Windows Vista над Windows 7. Я также демонстрировал новую функцию AppLocker Windows 7, которая позволяет Специалистам по ИТ ограничивать программное обеспечение, что пользователи могут работать на рабочих столах предприятия с гибкими правилами для того, чтобы ­идентифицировать программное обеспечение.

В недели, ведя до представления ведущих идей, я работал с Джейсоном Лезнеком, владельцем части Специалиста по ИТ представления ведущих идей, чтобы идентифицировать функции, которые я продемонстрирую и разрабатывать демонстрационные примеры. Мы использовали пробные прогоны, чтобы идти через сценарий, настраивая демонстрационные примеры и создавая переходы, обрезая контент, чтобы соответствовать времени, выделенному к моему сегменту и сжимая мое повествование, чтобы сосредоточиться на преимуществах новых технологий. Для демонстрационного примера совместимости приложения мы решили использовать пример программы под названием StockViewer, что мой друг Крис Джексон (Апп Компэт Гай) создаваемый, чтобы демонстрировать общие ошибки, которые вызывают проблемы совместимости на Windows Vista и Windows 7. (StockViewer - теперь демонстрационное приложение, которое идет с Microsoft Application Compatibility Toolkit.) В моем демонстрационном примере, я запустил бы StockViewer на Windows 7 и показал бы, как его Тенденции функционируют сбои с неясным сообщением об ошибке, вызванным ошибкой совместимости. (См. рисунок 17-10.)

1           Представление ведущих идей доступно для просмотра онлайн в http://www.msteched.com/2009/NorthAmerica/KEY01. Моя часть начинается в пределах 42:20.

 

Затем я показал бы, как я мог развернуть контейнер совместимости приложения, который включает рвению правильно на Windows Vista и затем запускает повторно приложение успешно.

Рис. 17-10. Ошибка StockViewer инициирована ошибкой совместимости.

Мы также хотели показать, как мастер Создания Правила AppLocker облегчает позволять программному обеспечению работать основанный на издателе или версии, если программное обеспечение в цифровой форме подписывается.

Первоначально, мы запланировали показ AppLocker после демонстрационного примера совместимости приложения и включения Читателю Adobe Acrobat, приложение, обычно используемое в предприятиях. Мы репетировали этот поток пару раз, но сочли переходы немного неуклюжими, таким образом, я предложил, чтобы мы подписали исполнимую программу StockViewer и переместили демонстрационный пример AppLocker перед демонстрационным примером контейнера. Я был бы в состоянии позволить StockViewer работать с правилом AppLocker и затем показать, как контейнер помогает ему работать правильно, используя его для обоих демонстрационных примеров.

Я вернулся в свой офис, подписал StockViewer с Sysinternals, подписывая сертификат и отправил это Джейсону. Несколько часов спустя он послал мне по электронной почте, что что-то было неправильным с демонстрационной системой, потому что StockViewer, который ранее запустился немедленно, теперь принял минуту, чтобы запуститься. Мы считали в обратном порядке к TechEd, и он паниковал, потому что мы должны были закрепить демонстрационные примеры. Я услышал в некоторый момент в прошлом, что СЕТЬ выполняет проверки подписи Authenticode, когда это загружает в цифровой форме подписанные блоки, таким образом, мое первое подозрение было то, что это было связано с этим. Я попросил, чтобы Джейсон получил трассировку Монитора Процесса, и он послал ее по электронной почте назад несколько минут спустя.

После открытия журнала первая вещь, которую я сделал, была фильтровать события для StockViewer.exe, находя ее первую работу и щелкая правой кнопкой устанавливать быстрый фильтр, как показано в рисунке 17-11.

Рис. 17-11. Устанавливание фильтра для StockViewer.exe с быстрым фильтром.

Затем я смотрел в это время штампы на первом элементе (2:27:20) и последний элемент (2:28:32), которое коррелировало с одноминутной задержкой, которую наблюдал Джейсон. Когда я просматривал трассировку путем прокрутки, я видел много ссылок на криптографию (crypto) регистрационные ключи и папки файловой системы, так же как ссылки на настройки TCP/IP, но я знал, что должен был быть по крайней мере один главный разрыв в отметках времени, чтобы учесть длинную задержку. Я отсканировал журнал с начала и нашел разрыв примерно 10 секунд в 2:27:22. (См. рисунок 17-12.)

Рис. 17-12. 10-секундный разрыв между событиями StockViewer.

Операции сразу прежде были ссылками на Rasadhlp.dll, связанный с сетями DLL, и немного ранее было много ссылок на регистрационные ключи Winsock с доступами к crypto регистрационным ключам сразу после 10-секундной задержки. Казалось, что система не была соединена с Интернетом и что приложение поддержалось некоторым сетевым тайм-аутом примерно 10 секунд. Я смотрел далее вниз, чтобы найти следующий разрыв и сталкивался с 12-секундным интервалом. (См. рисунок 17-13.)

Рис. 17-13. 12-секундный разрыв между событиями StockViewer.

Глава 17 Зависает и Вялая Производительность 413

Снова, было связанное с сетью действие прежде и crypto-связанное действие после разрыва.

Последующий разрыв, также 12 секунд, был идентичен. (См. рисунок 17-14.)

Рис. 17-14. Другой 12-секундный разрыв между событиями.

Фактически, следующие немного разрывов выглядели фактически идентичными. В каждом случае была ссылка на HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections ­сразу перед паузой, таким образом, я устанавливал фильтр для того пути и для работы RegOpenKey и, конечно же, мог легко видеть пять разрывов точно 12 секунд каждый. (См. рисунок 17-15.)

 

Рис. 17-15. Пять разрывов 12 секунд каждый.

Сумма разрывов — 12 раз 5 — равнялась задержке, которую видел Джейсон. Затем, я хотел проверить, что повторные попытки получить доступ к сети были вызваны, подписывая ­проверку, таким образом, я начинал смотреть на стеки вызова различных событий, выбирая их и нажимая Ctrl+K, чтобы открыть диалоговое окно Свойств Стека. Стек для событий, связанных с настройками Internet connection, показанными, что crypto был причиной. (См. рисунок 17-16.)

Рис. 17-16. Стек вызова показывает участие криптографических операций.

Одна заключительная часть доказательства, на которое я хотел проверить, была то, что СЕТЬ была в конечном счете ответственна за эти проверки. Я повторно отсканировал журнал, и я видел события в трассировке, которая подтвердила, что StockViewer - приложение СЕТИ. (См. рисунок 17-17.)

Рис. 17-17. Доказательство, что СЕТЬ включается.

Я также смотрел на стеки некоторых из ранних событий, ссылающихся crypto регистрационные ключи, и видел, что это было время выполнения СЕТИ, вызывающее звонок в WinVerifyTrust, функцию Windows для того, чтобы проверить цифровую подпись на файле, который запустил каскад предпринятых доступов в Интернет. (См. рисунок 17-18.)

Вызов.NET Framework РИСУНКА 17-18 WinVerifyTrust.

Уверенный теперь, когда причина задержки запуска происходила из-за СЕТИ, видя, что Stockviewer. exe был подписан и затем проверяющий, чтобы видеть, был ли сертификат подписания отменен, я ввел Веб-поиски, ища способ заставить СЕТЬ пропустить проверку, потому что я знал, что машины представления ведущих идей, вероятно, не будут соединены с Интернетом во время фактического представления ведущих идей. После нескольких минут прочтения статей другими с подобным опытом я нашел статью Базы знаний 936707, "FIX: Платформа СЕТИ, в которой 2.0 управляемых приложения, у которых есть подпись Authenticode, занимают больше времени чем обычно, чтобы запустить" (доступный http://support.microsoft.com/kb/936707) статью, описывает точно признаки, которые мы видели, и отмечает, что СЕТЬ 2.0, который является версией СЕТИ, которую я мог видеть, StockViewer использовал основанный на путях DLL СЕТИ, к которым это получило доступ во время трассировки, поддерживает способ выключить его обязательную проверку цифровых подписей блока: создайте конфигурационный файл в ­каталоге исполнимой программы с тем же самым именем как исполнимая программа кроме с добавленным ".config" (например, StockViewer.exe.config) содержащий следующий XML.

Спустя приблизительно 15 минут после того, как я получил электронное письмо Джейсона, я отправил ему ответ, объясняя мое заключение с присоединенным конфигурационным файлом. Вскоре после он записывал подтверждение обратно, что задержки увели и выражение изумления, что я выяснил проблему и ­решение так быстро. Это, возможно, походило на волшебство ему, но я просто использовал основной Procmon, диагностирующий методы и сеть, чтобы решить случай. Само собой разумеется пересмотренный демонстрационный поток и переход между AppLocker и совместимостью приложения оторвались большие.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: