.NET Framework 1.1 на IIS 7

я унаследовал веб-сайт .NET Framework 1.1, который я должен разместить с IIS 7 на Windows Server 2008. У меня проблемы.

1. Установка

Я установил .NET Framework 1.1 после эти инструкции.

установка автоматически создала новый пул приложений "ASP.NET 1.1". Я использую это.

2. Беда!--3-->

когда я запускаю веб-сайт, я вижу web.ошибки во время выполнения конфигурации:

тег содержит недопустимое значение атрибута' culture'.

я исправляю это, а затем вижу:

дочерние узлы не допускаются.

Я не хочу продолжать играть в эту игру whack-a-mole. должно быть, что-то не так.

3. Я уверен, что это .NET 1.1?

Я изучаю автоматически созданный пул приложений. Я вижу, что это 1.1.

передовая Настройки...

Automatic AppPool .NET 1.1 Advanced

Основные Настройки...

Automatic AppPool .NET 1.1 Basic

Это не кажется правильным.

в то время как 1.1 установлен, это не вариант в расширенных выпадающих селекторах.

и почему в базовой коробке это просто " v1.1 "и не" .NET Framework v1.1.4322"? Это было бы более последовательно.

4. Я не могу создать другие пулы приложений .NET 1.1

Я не могу выбрать .NET Framework 1.1 для другого приложения бассейны. Это не вариант в выпадающих селекторах. Что это значит?

App Pool missing .NET 1.1 option

что теперь?

  • почему не v1.1 вариант для всех AppPools?
  • как я могу проверить, что мое приложение на самом деле использует .NET Framework 1.1?
  • почему я могу получить эти ошибки выполнения?

3 ответов


быстрый способ узнать, работает ли приложение под 1.1, - это запустить быстрый скрипт, который отображает версию среды:

<%@ Page Language="C#" %>
<script runat="server">
    void Page_Load(Object sender, EventArgs e)
    {
        Response.Write(System.Environment.Version.ToString());       
    }
</script>

или если вы получаете желтые экраны смерти, то вы увидите номер версии в нижней части страницы: alt text

Я подозреваю, что причина, по которой Вы не можете выбрать Framework В1.1 при добавлении нового пула приложений или изменении существующего является то, что установщик 1.1 не знает, как добавьте в IIS некоторые важные метаданные или сведения о конфигурации.

.NET 2.0 поставляется с 2008 и .NET 4.0, являющийся более поздним продуктом, является IIS7 дружественным, поэтому, скорее всего, лучше интеграция IIS. Или v1.1 не имеет некоторого важного самородка метаданных, которые InetMgr IIS7 должен иметь возможность добавить в свои различные списки.

причина, по которой вы можете видеть v1.1 в раскрывающемся списке для ASP.NET 1.1 пул Основные Параметры диалог, а не другие бассейны потому что он уже установлен и поэтому будет просто включен в список. Я экспериментировал и изменил это на вновь созданной ASP.NET 1.1 пул и установить его в 2.0, сохранить, а затем снова открыть. В результате получается v1.1 больше не видно.

кроме того, почему он называется В1.1, а не .Чистая база В1.1.4322 потому что значение выбирается из managedRuntimeVersion атрибут в конфигурации пула приложений в applicationHost.config. Причина, по которой версии 2.0 и 4.0 показывают полный описание заключается в том, что, вероятно, существует некоторая часть дружественных метаданных IIS со строкой ресурса, которая не присутствует для 1.1.

чтобы установить пул для использования v1.1 во время создания вы должны вручную установить managedRuntimeVersion атрибут с помощью APPCMD.EXE:

appcmd add apppool /name:"NewPool"  /managedRuntimeVersion:"v1.1"

это объясняется в нижней части статьи, на которую вы ссылались.

чтобы изменить существующий пул для использования 1.1, необходимо также использовать командную строку APPCMD.EXE инструмент:

appcmd set apppool /apppool.name:"SomeOtherPool" /managedRuntimeVersion:"v1.1"

интересно вы можете установить managedRuntimeVersion к любому старому значению:

alt text

Я хотел бы объяснить, почему ASP.NET 1.1 пул приложений волшебным образом создается или как установщику удается делать правильные вещи с сопоставлениями обработчиков (как-то все правильно preConditions установлены, поэтому либо установщик был обновлен, либо IIS имеет какой-то триггер для поиска 1.1 устанавливается и исправляется вещи.)

обновление:

я связался с Биллом Стейплзом, автором этой статьи:

Как установить ASP.NET 1.1 с IIS7 на Vista и Windows 2008

Я спросил его о том, как установщик 1.1 или IIS7 умудряются делать правильные вещи в отношении сопоставлений обработчиков, создавая "ASP.NET 1.1" пул приложений и так далее. Вот его ответ:--11-->

"если память не изменяет, в Vista / Windows 2008 была создана прокладка совместимости приложений, которая обнаружит установщик 1.1 и выполнит сопоставление создания/обработчика пула приложений. Однако в Windows 7 / Windows Server 2008 R2 .NET framework 1.1 больше не поддерживается, и я бы не удивился, если бы этот код был вытащен, хотя я не знаю наверняка."

так что загадка решена.


Я столкнулся с теми же проблемами при попытке установить старый .Net 1.1. на Win2k8/и IIS7. В конце концов я обнаружил, что проще и быстрее просто поднять все до .Net 2.0. Я бы рекомендовал вам сделать то же самое.

Если ваш код не делает ничего экзотического, процесс переноса может выполняться в день или меньше для достаточно больших проектов.


в Windows 2008 не установлен .NET 1.1. Ты можешь!--1-- > вручную установите .NET 1.1.