Атрибут 'compilerVersion' в параметрах провайдера должен быть 'v4.0' или новее - PullRequest
11 голосов
/ 05 апреля 2011

Получение этой ошибки:

Значение для 'compilerVersion' атрибут в настройках провайдера должен быть 'v4.0' или позже, если вы компиляция для версии 4.0 или новее .NET Framework. Чтобы скомпилировать это Веб-приложение для версии 3.5 или ранее .NET Framework, удалите атрибут targetFramework из элемент Файл Web.config.

Это работало на нашей системе разработки, и сейчас мы развертываем в QA, используя развертывание типа xcopy.

У нас нет ни одного «compilerVersion» в файле web.config, а targetFramework установлен на «4.0». Мы сделали IISReset.

* * 1010

ОБНОВЛЕНИЕ 2: когда мы удалили весь раздел, мы получили ошибку. Итак, мой вопрос: что плохого в том, чтобы оставить в этом разделе, если мы находимся на .NET 4.0?

Мы только что сделали полную копию того, что было в Test to QA, и в QA он получает ошибку, а DEV нет. Таким образом, программное обеспечение и конфиги идентичны. Почему это работает на одном сервере, а не на другом? Параметры IIS кажутся идентичными.

Ответы [ 4 ]

8 голосов
/ 05 августа 2013

взято из: http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770150

Вы должны зайти в корневой каталог вашего сервера web.config и включить весь <system.codedom>...</system.codedom> пометить содержимое в <location path="" inheritInChildApplications="false">...</location> тег

4 голосов
/ 05 апреля 2011
1 голос
/ 08 июля 2015

Я получил ту же ошибку и обнаружил, что мой сайт v4.0 был размещен под сайтом по умолчанию v2.0.Если у вас есть такая настройка, вам нужно удалить следующую строку из вашего web.config:

<compilation defaultLanguage="c#" debug="true" targetFramework="4.0"/>

Надеюсь, это поможет.

1 голос
/ 19 сентября 2014

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

...