В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Установка обновления безопасности MS05-004 может приводить к снижению производительности ASP.NET

Проблема
Если после установки обновления безопасности MS05-004 в систему войдет пользователь, не имеющий прав администратора, то производительность Microsoft ASP.NET может уменьшиться. Это вызвано тем, что данное обновление безопасности заменяет файлы DLL, имеющие образы в машинном коде. Во время установки все образы в машинном коде помечаются как недействительные и считаются таковыми, пока администратор не войдет в систему.

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

Снижение производительности происходит только после установки данного обновления безопасности на компьютерах, на которых установлены Microsoft .NET Framework 1.0 с пакетом обновления 2 (SP2) или исходная версия Microsoft .NET Framework 1.1.

Обновление безопасности MS05-004 устанавливает новые версии следующих файлов DLL.

Если установлен пакет .NET Framework 1.1
  • System.dll
  • System.xml.dll
Если установлен пакет .NET Framework 1.0 с пакетом обновления 2 (SP2)
  • Mscorlib.dll
  • System.dll
  • System.xml.dll
Чтобы определить номер основной версии пакета .NET Framework, установленного на компьютере, используйте следующий метод.
  • Если папка %windir%\Microsoft.net\Framework\v1.0.3705 содержит более четырех файлов, значит, установлен пакет .NET Framework 1.0. Если данная папка содержит только приведенные ниже файлы, значит, пакет .NET Framework 1.0 не установлен.
    • Installutil.exe.config
    • Mscormmc.cfg
    • Mscormmc.dll
    • Regsvcs.exe.rtm.config
  • Если существует папка %windir%\Microsoft.net\Framework\v1.1.4322, значит, установлен пакет .NET Framework 1.1.
Примечание. На компьютере могут одновременно существовать обе вышеуказанные папки.

Примечание. Чтобы определить номер версии пакета обновления, используйте следующий метод.
  • Если номер версии файла %windir%\Microsoft.net\Framework\v1.0.3705\Sscorwrks.dll меньше чем 1.0.3705.6000, значит, установлен пакет обновления 2 (SP2) для .NET Framework 1.0.
  • Если номер версии файла %windir%\Microsoft.net\Framework\v1.1.4322\Sscorwrks.dll меньше чем 1.1.4322.2000, значит, установлен пакет.NET Framework 1.1.
Решение
После установки данного обновления безопасности образы в машинных кодах обновляются при первом входе в систему пользователя с правами администратора. После обновления образов в машинных кодах производительность системы возвращается на прежний уровень. Это происходит, поскольку загружаемый код может не подвергаться предварительной JIT-компиляции.

Кроме того, для обновления образов в машинных кодах можно воспользоваться генератором образов в машинном коде (Ngen.exe). Для этого выполните следующие команды.

Если установлен пакет .NET Framework 1.1
NGEN %windir%\Microsoft.Net\Framework\V1.1.4322\system.dllNGEN %windir%\Microsoft.Net\Framework\V1.1.4322\system.Xml.dll
Примечание. Генератор образов в машинном коде находится в папке %windir%\Microsoft.Net\Framework\V1.1.4322.


Если установлен пакет .NET Framework 1.0 с пакетом обновления 2 (SP2)
NGEN %windir%\Microsoft.Net\Framework\V1.0.3705\mscorlib.dllNGEN %windir%\Microsoft.Net\Framework\V1.0.3705\system.dllNGEN %windir%\Microsoft.Net\Framework\V1.0.3705\system.Xml.dll
В результате установки новой версии файла Mscorlib.dll все образы в машинных кодах, установленные на компьютере, будут считаться недействительными. Поэтому необходимо выполнить указанные ниже команды и обновить данные образы для соответствующих файлов DLL.
NGEN %windir%\Microsoft.Net\Framework\V1.0.3705\custommarshalers.dllNGEN %windir%\Microsoft.Net\Framework\V1.0.3705\system.Design.dllNGEN %windir%\Microsoft.Net\Framework\V1.0.3705\system.Drawing.dllNGEN %windir%\Microsoft.Net\Framework\V1.0.3705\system.Drawing.Design.dllNGEN %windir%\Microsoft.Net\Framework\V1.0.3705\system.Windows.Forms.dll
Примечание. Генератор образов в машинном коде находится в папке %windir%\Microsoft.Net\Framework\V1.0.3705.
Ссылки
Дополнительные сведения об обновлении безопасности MS05-004 см. в следующей статье базы знаний Майкрософт:
887219 MS05-004: Уязвимость при проверке путей приложениями ASP.NET делает возможным несанкционированный доступ
Дополнительные сведения о генераторе образов в машинном коде (Ngen.exe) см. на веб-узле Microsoft Developer Network по адресу:
Свойства

Номер статьи: 891829 — последний просмотр: 02/14/2005 15:45:00 — редакция: 1.1

  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • kbprb KB891829
Отзывы и предложения
cript>