Вопрос

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

1. Установка

Я установил .NET Framework 1.1 следующим образом эти инструкции.

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

2. Проблема

Когда я запускаю веб -сайт, я вижу ошибки Web.Config выполнения:

Тег содержит неверное значение для атрибута «культуры».

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

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

Я не хочу продолжать играть в эту игру 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 не является опцией для всех приложений?
  • Как я могу проверить, что мое приложение фактически использует .NET Framework 1.1?
  • Почему я могу получить эти ошибки времени выполнения?
Это было полезно?

Решение

Быстрый способ выяснить, работает ли приложение под 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 v1.1 При добавлении нового пула приложений или изменением существующего - это то, что установщик 1.1 не знает, как добавить критическую часть метаданных или информации конфигурации в IIS.

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

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

Кроме того, причина, по которой он называется V1.1, а не .Net Framework v1.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» и так далее. Это был его ответ:

«Если память будет служить, в Vista/Windows 2008 был создан Shim совместимости приложения, который обнаружил бы установщик 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. Вы можете Вручную установить .NET 1.1.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top