IIS 8.0 с помощью ASP.NET 3.5 и ASP.NET 4.5

Вон Йо

Совместимость

Версия Примечания
IIS 8.0 ASP.NET 3.5 и ASP.NET 4.5 поддерживаются в IIS 8.0.
IIS 7.5 ASP.NET 3.5 и ASP.NET 4.5 поддерживаются в IIS 7.5.
IIS 7.0 ASP.NET 3.5 и ASP.NET 4.5 поддерживаются в IIS 7.0.

Проблема.

Windows Server 2012 включает .NET Framework 4.5 по умолчанию, а также необязательную установку платформы .NET 3.5 Framework. Разработчикам часто требуется запускать смешанные веб-приложения в нескольких версиях .NET Framework.

Решение

IIS 8.0 в Windows Server 2012 запускает ASP.NET приложения на всех версиях .NET Framework, поддерживаемых в Windows Server 2012. Это означает, что ASP.NET приложения могут работать в IIS 8.0 с помощью .NET Framework 3.5 или .NET Framework 4.5. IIS 8.0 размещает версии .NET Framework в разных пулах приложений, что позволяет нескольким ASP.NET приложениям с разными версиями .NET Framework одновременно работать в Windows Server 2012.

IIS 8.0 также поддерживает управление как ASP.NET 3.5, так и ASP.NET 4.5 приложений с помощью графического средства диспетчера IIS, а также средств управления командной строкой IIS. Дополнительные сведения см. в статье iis 8.0 ASP.NET Configuration Management .

Пошаговые инструкции

Необходимые условия

Настройка IIS 8.0 с поддержкой ASP.NET 3.5 и ASP.NET 4.5

В Windows Server 2012 как .NET Framework 3.5, так и .NET Framework 4.5 изначально распознаются операционной системой. Это означает, что настройка на основе пользовательского интерфейса и на основе командной строки можно использовать для включения обеих версий .NET Framework, а также для интеграции обеих версий ASP.NET с IIS 8.0.

В этом пошаговом руководстве мы будем использовать новый пользовательский интерфейс диспетчера серверов в Windows Server 2012 Server для демонстрации включения как ASP.NET 3.5, так и ASP.NET 4.5 в IIS 8.0.

  1. При первом входе на новый компьютер Windows Server 2012 будет отображаться новый пользовательский интерфейс диспетчера серверов. Нажмите кнопку "Добавить роли ", как показано ниже:
    Снимок экрана нового интерфейса диспетчера серверов с добавлением ролей, выделенных.

  2. На первом экране мастера добавления ролей и компонентов нажмите кнопку "Далее". Откроется страница, на которой выбран нужный тип установки. Выберите установку по ролям или характеристикам, как показано ниже.
    Снимок экрана: мастер установки ролей и функций с выделенным вариантом установки на основе роли или функции.

  3. Нажмите кнопку "Далее". На следующем экране мастера появится запрос на выбор настраиваемого сервера.

  4. На следующем шаге мастера вам будет предложено выбрать одну или несколько ролей сервера. Прокрутите вниз в списке ролей и установите флажок веб-сервера (IIS), как показано ниже:
    Снимок экрана: список ролей сервера в мастере добавления ролей и компонентов, где установлен и выделен веб-сервер IIS.

  5. Нажмите кнопку "Далее ", чтобы перейти к следующему шагу, что позволяет выбрать дополнительные компоненты для установки на сервере. Нажмите кнопку "Далее" и перейдите к следующему шагу.

  6. На следующем шаге мастера отображаются общие сведения о роли веб-сервера (IIS ). Нажмите кнопку "Далее" и перейдите к следующему шагу. Теперь вы должны находиться на шаге мастера, который выглядит следующим образом:
    Снимок экрана: список служб ролей для выбора и установки на веб-сервере I S с выделенным средством управления.

  7. Обратите внимание, что несколько вложенных функций по умолчанию для IIS уже были включены, так как вы выбрали роль сервера веб-сервера (IIS) ранее. Однако мы хотим включить как ASP.NET 3.5, так и ASP.NET 4.5 для запуска в IIS 8.0, поэтому нам необходимо включить некоторые дополнительные функции, связанные с IIS. Прокрутите вниз в списке служб ролей , пока не отобразится узел разработки приложений . Сначала этот узел свернут, щелкните узел и разверните его таким образом, чтобы его дочерние элементы отображались:
    Снимок экрана: список служб ролей с выделенным узлом

  8. Узел разработки приложений — это узел, в котором мы можем включить интеграцию ASP.NET с IIS. Обратите внимание, что в списке функций есть несколько флажков с похожими именами. Пара флажков, представляющая интерес для этого пошагового руководства:

    • ASP.NET 3. 5. Этот параметр позволяет ASP.NET 3.5 запускаться в IIS 8.0. Обратите внимание, что в Windows Server 2012 платформа .NET Framework 3.5 недоступна в составе базового образа ОС. Вместо этого полезные данные скачиваются из Интернета и необходимо подключиться к Интернету.
    • ASP.NET 4.5 . Этот параметр позволяет запускать ASP.NET 4.5 в IIS 8.0.
  9. Сначала установите флажок ASP.NET 3.5 . При этом появится дополнительное диалоговое окно, как показано ниже:
    Снимок экрана диалогового окна с вопросом о добавлении функций, необходимых для ASP.NET 3.5.

  10. Так как ASP.NET 3.5 интегрирована в программу установки Windows Server 2012, Windows Server 2012 знает все связанные зависимости, необходимые для включения ASP.NET 3.5 в IIS 8.0. В этом всплывающем диалоговом окне отображается только то, что будет автоматически извлечено и установлено. Так как мы хотим включить ASP.NET 3.5, нажмите кнопку "Добавить необходимые компоненты".

  11. Затем установите флажок ASP.NET 4.5 в списке функций служб ролей . Ниже показан конечный результат нажатия обоих ASP.NET связанных флажков:
    Снимок экрана: список компонентов служб ролей, в котором ASP.NET 4.5 выбран и выделен.

  12. Несмотря на то, что вы выбрали только ASP.NET 3.5 и ASP.NET 4.5 функций, мастер автоматически включил ряд других элементов. Это делается автоматически, чтобы разработчики не должны явно выбирать различные компоненты, необходимые для сборки ASP.NET в Windows Server 2012. На этом этапе нажмите кнопку "Далее ", чтобы принять изменения.

  13. На шаге "Подтверждение выбора установки" отображается список всех компонентов, установленных при принятии изменений.
    Снимок экрана: выбор подтверждения установки, показывающий список всех компонентов, установленных при принятии изменений с выделенным подтверждением.

  14. На этом этапе нажмите кнопку "Установить ", чтобы принять изменения и установить полную поддержку ASP.NET в Windows Server 2012.

  15. Так как установка займет небольшое время, мастер отображает диалоговое окно хода выполнения во время выполнения установки:
    Снимок экрана: диалоговое окно

  16. Через несколько минут мастер показывает, что установка завершена:
    Снимок экрана: ход установки, показывающий успешное выполнение установки в мастере добавления ролей и компонентов.

  17. На этом этапе можно нажать кнопку "Закрыть " и выйти из мастера.

Изучение установки IIS 8.0

С установленной интеграцией как IIS 8.0, так и ASP.NET, можно ознакомиться с базовой инфраструктурой ASP.NET для IIS 8.0.

  1. В меню "Пуск Windows" выберите "Все программы" , а затем разверните меню "Администрирование ". В результирующем списке найдите диспетчер служб IIS и выберите его, чтобы запустить графическое средство управления IIS:
    Снимок экрана: меню

  2. После запуска диспетчера IIS разверните узел сервера в левом окне, чтобы отображались узлы пулов приложений и узлы сайтов . Когда вы сделаете это, в диспетчере IIS появится диалоговое окно с вопросом, хотите ли вы оставаться на связи с последними компонентами веб-платформы. В этом пошаговом руководстве можно нажать кнопку "Нет". На этом этапе диспетчер IIS выглядит следующим образом:
    Снимок экрана диспетчера IIS, отображающий узел пулов приложений и узел сайтов, развернутые с выделенным Установщиком веб-платформы.

  3. Щелкните узел Application Pools, чтобы отобразить пулы приложений, которые теперь установлены для использования в IIS 8.0.
    Снимок экрана: узел пулов приложений с списком пулов приложений, установленных для использования I S 8 dot 0.

  4. По умолчанию можно увидеть, что шесть разных пулов приложений создаются по умолчанию, если для IIS 8.0 включены как ASP.NET 3.5, так и ASP.NET 4.5. Четыре приложения являются новыми для IIS 8.0, а два других пула приложений перенесены из предыдущих выпусков Windows.

    • Обратите внимание, что в столбце версии .NET Framework показаны версии 2.0 и версии 4.0 для версий .NET Framework, они приравниваются к ASP.NET 3.5 и ASP.NET 4.5. Из-за внутренних принципов привязки пулов приложений к версиям .NET Framework фактическое имя версии, записанное в конфигурацию (и таким образом отображаемое в средстве), соответствует исходной версии файла .NET Framework.
    • Классическая версия .NET AppPool и DefaultAppPool существовали в предыдущих версиях Windows и, следовательно, продолжает создаваться для IIS 8.0. Обратите внимание, что поскольку .NET Framework 4.5 является версией по умолчанию для Windows Server 2012, DefaultAppPool в IIS 8.0 также по умолчанию использует эту версию .NET Framework.
    • Другие четыре пула приложений являются новыми в Windows Server 2012. Существует два пула приложений для запуска .NET Framework 3.5 (.NET версии 2.0 и .NET версии 2.0 Классический), а также два пула приложений для запуска .NET Framework 4.5 (.NET Framework 4.5 и .NET Framework 4.5 Classic).
    • Разница между "классическим" и "не классическим" пулами приложений — это режим управляемого конвейера, поддерживаемый в каждом типе пула приложений. Два пула приложений, заканчивающиеся "классическим", поддерживают более старый классический режим конвейера Windows Server 2003 для ASP.NET, а другие два пула приложений используют более новый интегрированный режим конвейера для ASP.NET представлен в Vista/IIS7.0.
  5. Разверните узел Сайты на левой стороне экрана, чтобы узел Default Web Site стал виден:
    Снимок экрана с развернутым узлом сайтов и выделенным узлом веб-сайта по умолчанию.

  6. По умолчанию установки IIS всегда имеют "Веб-сайт по умолчанию", настроенный для прослушивания HTTP-запросов через порт 80. Углубитесь в "Default Web Site", чтобы выяснить, какая версия ASP.NET поддерживается по умолчанию. Щелкните правой кнопкой мыши веб-сайт по умолчанию, а затем выберите "Управление веб-сайтом" и выберите "Дополнительные параметры ", как показано ниже:
    Снимок экрана: главная веб-страница по умолчанию с выбранными и выделенными параметрами управления веб-сайтом и дополнительными параметрами.

  7. Откроется диалоговое окно "Дополнительные параметры" , показывающее (среди прочего) пул приложений, используемый для запуска веб-сайта по умолчанию. Как показано на рисунке ниже, веб-сайт "По умолчанию" работает в пуле приложений с именем "DefaultAppPool":
    Снимок экрана: диалоговое окно

  8. Если щелкнуть небольшую кнопку с многоточием в правой части пула приложений, появится дополнительное диалоговое окно, отображающее дополнительные сведения о defaultAppPool. Как отмечалось ранее, DefaultAppPool устанавливается по умолчанию для ASP.NET 4.5 для IIS 8.0, поэтому приложения ASP.NET 4.5, развернутые на веб-сайте «по умолчанию», будут работать без необходимости в дополнительной настройке.
    Снимок экрана: диалоговое окно

  9. На этом этапе нажмите кнопку "Отменить" , чтобы отменить диалоговое окно "Выбор пула приложений " и диалоговое окно "Дополнительные параметры ".

Выполнение приложений ASP.NET 3.5 и ASP.NET 4.5

Теперь, когда вы изучили состояние установки IIS 8.0, попробуйте запустить некоторый пример кода ASP.NET, чтобы убедиться, что оба приложения ASP.NET 3.5 и ASP.NET 4.5 могут работать одновременно на одной установке IIS 8.0.

Пример кода для ASP.NET 3.5 и ASP.NET 4.5 содержится в следующих .zip:

Скриншот файла примеры.zip.

Сначала настройте простое приложение ASP.NET 3.5 в IIS 8.0:

  1. Откройте файл "examples.zip".

  2. В проводнике Windows на компьютере с Windows Server 2012 перейдите в каталог wwwroot для установки IIS. Например, если вы установили IIS на диске C:\ , каталог wwwroot будет находиться в c:\inetpub\wwwroot.

  3. Скопируйте папку example35 из "examples.zip" и вставьте ее в каталог c:\inetpub\wwwroot. После завершения структура каталога должна выглядеть следующим образом:
    Снимок экрана: локальный каталог на диске C с выделенным примером 35 папки.

  4. Только что созданную папку Example35 необходимо настроить в качестве приложения ASP.NET 3.5 в диспетчере IIS. Вернитесь в окно диспетчера IIS, щелкните узел веб-сайта по умолчанию и выберите "Обновить". В представлении дерева дочерних узлов на веб-сайте по умолчанию теперь отображается папка example35:
    Снимок экрана дерева дочерних узлов под узлом веб-сайта по умолчанию с выделенной папкой под номером 35.

  5. Щелкните правой кнопкой мыши папку Example35 и выберите "Преобразовать в приложение":
    Снимок экрана: пример 35 - папка, нажата правая кнопка мыши, выбран и выделен параметр

  6. Откроется диалоговое окно "Добавление приложения ". По умолчанию все каталоги в веб-сайте по умолчанию являются частью пула приложений с именем DefaultAppPool. Это означает, что недавно созданные папки, содержащие ASP.NET, выполняются как ASP.NET приложения 4.5 по умолчанию.
    Снимок экрана: диалоговое окно

  7. Так как мы хотим запустить папку example35 как приложение ASP.NET 3.5, пул приложений необходимо изменить. Нажмите кнопку "Выбрать" и откроется диалоговое окно "Выбор пула приложений ". Измените пул приложений на .NET версии 2.0 , как показано ниже:
    Снимок экрана: диалоговое окно

  8. Нажмите кнопку "ОК ", чтобы принять изменение пула приложений, а затем нажмите кнопку "ОК ", чтобы зафиксировать изменения в IIS. Откроется окно диспетчера IIS. В дереве обозревателя, отображающем "Веб-сайт по умолчанию", значок для "пример 35" изменен, чтобы показать, что это теперь отдельное приложение ASP.NET.
    Снимок экрана: представление дерева веб-сайта по умолчанию, показывающее веб-сайт по умолчанию и выделенный значок, например 35 папок, измененных.

  9. На этом этапе запустите экземпляр Internet Explorer и перейдите по следующему URL-адресу:

    http://localhost/example35

    После короткой паузы приложение отображает список функций .NET Framework, поддерживаемых в этом приложении.

  10. В проводнике Windows, если перейти к c:\inetpub\wwwroot\example35 каталогу, можно использовать блокнот для просмотра кода для "default.aspx" и сведений в "web.config". Например, содержимое web.config включают директивы, которые настраивают компиляторы .NET Framework для запуска в режиме "3.5". Код .NET Framework в default.aspx демонстрирует некоторые конструкции C#, которые были введены в .NET 3.5, в частности запросы LINQ-to-Object.

Теперь, когда запущено приложение ASP.NET 3.5, можно создать второе ASP.NET приложение, но на этот раз настройте его для использования .NET Framework 4.5.

  1. Вернитесь в окно проводника Windows с открытым файлом .zip "examples.zip".

  2. Откройте содержимое папки example45.

  3. Во втором окне проводника Windows, которое вы открыли, перейдите к разделу c:\inetpub\wwwroot.

  4. Скопируйте файл default.aspx из файла .zip и вставьте его непосредственно в c:\inetpub\wwwroot. Содержимое папки c:\inetpub\wwwroot должно выглядеть следующим образом:
    Снимок экрана папок локального диска C с выделенным файлом .aspx по умолчанию.

  5. Теперь вернитесь в Internet Explorer и перейдите по следующему URL-адресу:

    http://localhost/default.aspx

    После короткой паузы второй пул приложений начнет работать с приложением ASP.NET 4.5 для веб-сайта по умолчанию. В браузере снова отображается список функций .NET Framework, поддерживаемых в этом приложении, с новой записью в конце списка для динамически типизированных переменных (то есть динамическое ключевое слово, введенное в .NET Framework 4.0/4.5). Обратите внимание, что в отличие от приложения example35, требующего специальных web.config записей, для настройки и запуска страницы "default.aspx" на веб-сайте по умолчанию не требуется файл web.config. Это связано с тем, что .NET Framework 4.5 является платформой .NET Framework по умолчанию, используемой ASP.NET приложениями в IIS 8.0, и в результате дополнительная конфигурация не требуется.

  6. Если вы используете Блокнот для открытия только что скопированной страницы "default.aspx", вы также увидите несколько изменений по сравнению с версией в каталоге "example35". Директивы пространства имен в верхней части страницы отсутствуют, так как платформа .NET Framework 4.5 используется по умолчанию в IIS 8.0. Код на странице демонстрирует использование динамической переменной, которая представляет собой концепцию компилятора, представленную в .NET Framework 4.0/4.5.

Сводка

IIS 8.0 поддерживает запуск как ASP.NET 3.5, так и ASP.NET приложений 4.5 на одном компьютере с использованием разных пулов приложений для размещения каждой версии .NET Framework. IIS 8.0 поддерживает несколько версий .NET Framework, что позволяет разработчикам и администраторам использовать все преимущества IIS 8.0 при сохранении обратной совместимости с веб-приложениями, перенесенными из Windows Server 2008 R2.