Как вы сообщаете IIS 6, чтобы установить версию .NET на 2.0 (а не 1.1). Когда создаются новые сайты?

Мы создаем новые сайты в IIS 6 (Windows Server 2003) с помощью диспетчера IIS. Когда эти сайты создаются в IIS 6, версия ASP.NET по умолчанию соответствует ASP.NET 1.1. Мы хотели бы, чтобы это было по умолчанию ASP.NET 2.0. Причина, по которой это проблема, заключается в том, что когда вы берете любой сайт на сервере и переключаете версию ASP.NET с ASP.NET 1.1 на ASP.NET 2.0, все веб-сайты перерабатываются.

Есть ли параметр в метабазе IIS, который контролирует это или способ создания сайта через script, который правильно устанавливает версию ASP.Net, чтобы мы могли избежать IIS reset при настройке каждого сайта?

Ответы

Ответ 1

Как уже упоминалось другим, я ссылаюсь на этот пост, когда мне нужно изменить настройки .NET для сайта.

Что касается вашего вопроса, следующие шаги (обобщенные из связанного сообщения) должны обеспечить то, что вам нужно:

  • Запустите aspnet_regiis -lk из любой платформы .NET framework, чтобы отобразить текущие настройки, чтобы помочь вам определить, какие сайты должны оставаться с использованием .NET 1.1. Если вы знаете, что есть сайт .NET 1.1, но он явно не указан этой командой, то он наследуется от корня W3SVC/.

  • Для всех сайтов .NET 1.1, явно не указанных в предыдущей команде, вам необходимо заставить их использовать .NET 1.1:

    • Определите идентификатор идентификатора сайтов (сайтов), которые вы хотите использовать для использования .NET 1.1. (Через диспетчер IIS 6 вы можете определить Идентификатор сайта, щелкнув папку "Веб-сайты" в левой части инструмента. С правой стороны будут указаны все ваши сайты, а в столбце Идентификатор отображается идентификатор.)
    • В папке Framework.NET 1.1 запустите aspnet_regiis -sn W3SVC/<Identifier ID>/ROOT/, где <Identifier ID> - это идентификатор сайта, который вы хотите использовать для использования .NET 1.1.
  • Наконец, измените корень W3SVC/ на использование .NET 2.0, чтобы все вновь созданные сайты наследовали от корня и по умолчанию использовали .NET 2.0. Чтобы изменить корень, из папки фреймворка .NET 2.0 запустите aspnet_regiis -sn W3SVC/.

Вы можете снова запустить aspnet_regiis -lk, чтобы подтвердить свои настройки.

Ответ 2

Будьте осторожны, запустив aspnet_regiis -i, переназначит все ваши сайты IIS на 2.0. Если у вас есть 1.1 приложения, которые вы хотите сохранить, запустите aspnet_regiis -ir вместо этого. Это установит 2.0 для среды выполнения по умолчанию для IIS, но не изменит сопоставление script для существующих сайтов.

Ответ 4

Далее будет установлен веб-сайт по умолчанию для ASP.NET 2.0:

C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -sn W3SVC/

дочерние приложения наследуют параметр ASP.NET от родителя, поэтому все дети будут иметь новую настройку.

В качестве альтернативы запустите эту команду после изменения нового приложения.

Rob

Ответ 5

Простой ответ: откройте диспетчер IIS. В навигационной панели найдите веб-сайт .NET2 и щелкните по нему правой кнопкой мыши. Выберите "Свойства". Затем выберите вкладку "ASP.NET". Первый раскрывающийся список на этом экране дает вам возможность выбрать другую версию .NET.

Помните - когда я это сделал, все веб-сайты на веб-сервере перестали работать. Поддержка Microsoft сообщила мне, что .NET1 и .NET2 не должны запускаться из одной общей области (по умолчанию веб-сайтов) веб-сервера. Решение состоит в том, чтобы создать пул приложений на веб-сервере для сайтов .NET1 или .NET2, а затем использовать это, чтобы изолировать все сайты, на которых запущена "другая" версия .NET. Инструкции по созданию пула приложений можно найти в разделе "Справка" в диспетчере IIS.

Вы можете создать только один пул приложений и поместить все сайты с одним и тем же .NET в один и тот же пул или, вы можете создать пул приложений для каждого приложения. Ваш выбор.