2009-05-13 3 views
1

Я использую IIS 7.0 + Windows Server 2008 x64. Я установил .NET Framework 3.5 на свою машину, но из настроек платформы .NET для платформы IIS 7.0 я мог установить только версию v1.0 или v2.0. Почему я не могу установить версию v3.5, которая является последней версией .NET framework, установленной на моей машине?Ошибка версии .NET Framework

+0

Хороший вопрос. Я нахожу это сбивающим с толку. Может ли кто-нибудь расширить, почему MS реализовала его таким образом? –

ответ

1

Чтобы ответить на комментарий, который George2 оставил каждому из других ответов в одном месте:

Да. Общий язык Runtime - это то, что должно быть 2.0 (и в настоящее время не может быть выше, так как это последнее на данный момент).

Да. Вы можете придумать .NET Framework как SDK, если это упростит. Это не совсем точно, но ....

Да. Вы будете развертывать функциональность Framework 3.5 на CLR 2.0. Смущает, но это Microsoft для вас. Они делают (некоторые) отличную работу, но покажут восторг в запутывании пользователей с произвольным управлением версиями.

+0

Осталось один, на что вы не ответили. :-) - так, когда мы настраиваем версию в пуле приложений IIS, мы настраиваем версию CLR, отличную от версии .Net Framework? – George2

+1

Да. Вы настраиваете IIS для версии CLR, а не версии Framework. – RolandTumble

+0

Прохладный, вопрос ответил. – George2

5

Существует различие между версией CLR (последней из которых является версия 2.0) и версией .NET Framework (последней из которых является 3.5).

Связанная запись можно найти здесь:

What is meant by ASP.net Version 2.0?

+0

Прохладный, так что окончательное подтверждение, 1. поскольку самая высокая версия CLR 2.0, тогда даже если мы разворачиваем функции, которые используют .Net Framework 3.5 (например, WCF), она должна работать на CLR 2.0? 2. Когда мы настраиваем версию в пуле приложений IIS, мы настраиваем версию CLR, отличную от версии .Net Framework? – George2

+0

Я считаю, что это так, очевидно, если вы используете классы .NET 3.5 Framework, вам нужна платформа .NET 3.5, установленная на сервере. По звукам этого маловероятно, что вы, вероятно, можете понизить свой проект до 2.0. – PeteT

+0

Вам понадобятся установочные ящики .NET 3.5 (в папке bin, в GAC или что-то еще), но эти библиотеки работают в среде CLR 2.0. –

2

Версия 3.0 и 3.5 просто лишнее DLLs ONTOP рамок 2.0. Из-за этого вы увидите только 2.0 в качестве опции в IIS.

+0

1. Поскольку самая высокая версия CLR составляет 2.0, то даже если мы развертываем функции, которые используют .Net Framework 3.5 (например, WCF), она должна работать на CLR 2.0? 2. Когда мы настраиваем версию в пуле приложений IIS, мы настраиваем версию CLR, отличную от версии .Net Framework? – George2

+1

Правильно. Для любой версии фреймворка 2.0 или выше вы выберете 2.0 в IIS. Если на сервере не установлено 3.5, и вы пытаетесь использовать 3.5 функции, во время выполнения вы получите ошибки, говорящие, что не могут найти правильные библиотеки. – AaronS

+0

@AaronS, прохладный ответ. – George2

1

.NET Framework 3.x = .NET Framework 2.0 + новые функции (WPF, WF, WCF и т.д.)

Так что не нужно беспокоиться. Селектора версий в IIS не будут отображаться версии 3.x.

+0

Могу ли я понять, что CLR имеет среду выполнения и .Net Framework в качестве SDK разработки? – George2

+1

.NET SDK - это еще один пакет, который вы можете скачать отдельно. (То же самое и с Visual Studio). – NinethSense

+0

Что вы думаете о различиях между CLR и .NET Framework? Мое понимание CLR - это среда выполнения, а .Net Framework - это библиотека, используемая при разработке/времени выполнения. Мое понимание правильно? – George2

1

Все IIS заботится о версии CLR, а не о версии библиотек, которые вы можете или не можете загрузить на свой компьютер. Таким образом, он будет показывать только разностные версии CLR, а не разные версии различных библиотек.

+0

1. Могу ли я понять, что CLR имеет среду выполнения и .Net Framework как разработка SDK? 2. поскольку самая высокая версия CLR составляет 2.0, то даже если мы разворачиваем функции, использующие .NET Framework 3.5 (например, WCF), она должна работать на CLR 2.0? – George2

Смежные вопросы