2010-07-23 2 views
51

Я получаю это исключение:Как исправить ошибку «compilerVersion» IIS?

System.Configuration.ConfigurationErrorsException: Значение атрибута «compilerVersion» в опциях провайдера должен быть «v4.0» или позже, если вы компилируете для версии 4.0 или новее платформы .NET .

Что делать, чтобы разрешить это?

ответ

56

У меня была аналогичная проблема, и должен был сказать ASP.NET в конфигурации использовать 3,5 компилятор следующим путем изменения Web.config.

Я скопировал и вставил следующее из своего кода. У вас должно быть значение изменения = "v3.5" на значение = "v4.0". Может также измениться код компилятора типа.

<configuration> 

    <!-- ... other configuraiton stuff ... --> 

    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="OptionInfer" value="true"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
    </compilers> 
    </system.codedom> 

</configuration> 

В моем случае вместо 3.5 использовался компилятор 2.0. Я работал в проекте IIS 7, ASP.NET Website.

Вы можете почерпнуть дополнительные сведения от:

+0

Спасибо за этот ответ. Отлично. – Tarik

+1

Ответ 4igi имеет ответ C# 4.0. – pauloya

+1

Этот способ работает как для C#, так и для VB.NET. Благодаря! – Corgalore

9

Удалить этот раздел из web.config

<compilation debug="true" strict="true" explicit="true" targetFramework="4.0" /> 
+0

Я не видел вас, что вы ответили на свой вопрос, прежде чем я закончил заполнять мой путь :) –

+0

Да, но ваш был более полным. –

+2

Также необходимо удалить в 4.5. – James

27

это должно помочь

<configuration> 
<!-- --> 
<system.codedom> 
<compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
    type="Microsoft.CSharp.CSharpCodeProvider,System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
    <providerOption name="CompilerVersion" value="v4.0"/> 
    <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
</compilers> 
</system.codedom> 
<!-- --> 
</configuration> 
1

В моем случае это был ребенок, сайт под По умолчанию веб-сайта и, хотя настройки веб-сайта по умолчанию были установлены в ASP.NET 4.0, файл web.config был установлен для 2.0 и 3.5. Изменение файла web.config для использования 4.0 исправил его. Используйте это для справки: ASP.NET 4 Breaking Changes

+0

в моем случае это очень помогло, спасибо! –

25

В моем случае я пытался запустить дочернее приложение с использованием 4.0, но родительскому приложению необходимо было использовать 2.0. Обнаружение информации компиляторов в родительском web.config с тегом <location path="." inheritInChildApplications="false"> исправлено.

Родитель Web.config:

<location path="." inheritInChildApplications="false"> 
    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> 
     <providerOption name="CompilerVersion" value="v3.5" /> 
     <providerOption name="WarnAsError" value="false" /> 
     </compiler> 
    </compilers> 
    </system.codedom> 
+0

Это помогло моей ситуации. У нас не было проблем со смешанными версиями .Net на сервере до тех пор, пока не будет запущен поставщик MSI. –

+1

Ницца ... это исправило мою проблему (сайт ASP.NET 4 является дочерним по ASP.NET 2.0) –

1

Мы случайно копировать-вставить Web.config в C: \ Inetpub \ Wwwroot. Этот случайно скопированный в Web.config экземпляр несовместил конфигурацию и вызвал ошибку compilerVersion для нас. Удаление Web.config решило проблему для нас.

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