Что на самом деле делает параметр «.NET Framework Version» в IIS?

19

Это кажется очевидным вопросом, но я пытаюсь определить, что на самом деле меняет кнопка «Изменить версию .NET Framework» на панели конфигурации IIS верхнего уровня. На всех моих серверах он всегда оставался на версии 2.0. Мои пулы приложений представляют собой смесь версий 2.0 и 4.0, и все приложения версии 4.0 работают правильно.

Итак, что же контролирует этот номер версии? Что будет зависеть от того, что не будет назначено пулу приложений? Кажется странным

Рассматриваемая настройка изображена ниже:

введите описание изображения здесь

Джон Харгроув
источник

Ответы:

13

Это заставляет IIS указывать на различные файлы конфигурации корневого уровня для .NET. Эти файлы корневого уровня находятся в установочных папках%systemroot%\Microsoft.NET\Framework\<version>\CONFIG

IIS ищет файлы конфигурации для себя %systemroot%\system32\inetsrv\config\applicationHost.config
и для .NET в
%systemroot%\Microsoft.NET\Framework\<version>\CONFIG\machine.config

Изменение версии .NET указывает, какой файл machine.config будет использоваться. Например, изменив его на v2.050727, он увидит %systemroot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config. Переход на v4.0.30319 заставит его взглянуть на%systemroot%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config

Приложения наследуют вещи из настроек конфигурации корневого уровня.

Взгляните на эту статью, которая описывает систему конфигурации и показывает иерархию конфигурации.

squillman
источник
3

Согласно TechNet , этот параметр управляет версией .NET Framework по умолчанию.

На уровне пула приложений этот параметр управляет платформой, которая используется для размещения приложений, связанных с пулом. На уровне сервера этот параметр не оказывает непосредственного или очевидного влияния на сайты .NET 4.0 или 2.0, работающие на моем тестовом сервере, однако я сомневаюсь, что это будет вариант, если он ничего не сделает. Его расположение в разделе «Развертывание» на панели «Действия» заставляет задуматься, не повлияет ли это на пакеты импорта / экспорта, расположенные там же. Я собираюсь проверить это.

Я нашел связанную ветку на iis.net, которая, кажется, указывает, что этот параметр повлияет на разделы файла конфигурации, которые поддерживаются по умолчанию, без добавления в начало файлов.

Я не нашел ничего другого в Интернете, кажется, это довольно туманная настройка.

Изменить: ответ от Squillman лучше.

jbuch
источник
1
Я собирался ответить точно так же, но затем я перечитал вопрос: он говорит о настройке верхнего уровня в IIS, а не о конкретном пуле приложений. И этот параметр также не имеет смысла для меня, так как в IIS нет «глобальной» версии .NET, это параметр, относящийся к пулу приложений.
Массимо
Да, вы правы, спасибо за комментарий. Я должен отредактировать свой ответ.
Jbuch
2
Также обратите внимание, что .NET 4.5 - это расширение до 4.0, оно не вводит новую среду выполнения.
Ричард
Как оказалось, мой первоначальный ответ касался пулов приложений, и теперь ясно, что вы обращаетесь к параметру «Изменить версию .NET Framework» на панели «Действия», когда нажимаете на узел сервера в диспетчере IIS. инструмент. Так что, по сути, я ничем не помог, если я не смогу найти лучший ответ через несколько минут, я собираюсь удалить свой ответ.
Jbuch