Атрибут compilerVersion в параметрах поставщика должен быть "v4.0" или новее

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

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

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

У нас нет "compilerVersion" в любом месте в файле web.config, а для targetFramework установлено значение "4.0". Мы сделали IISReset.

<system.web>

        <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>

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

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

Ответ 1

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

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

Ответ 3

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

Ответ 4

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

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

Я надеюсь, что это поможет.