Мы развертываем наше приложение ASP.Net MVC на сервере Windows 2008 R2 с IIS 7.5.
После развертывания мы получаем эту ошибку в журнале событий (мы также получаем электронное письмо):
«Нераспознанный элемент providerOption» в строке x в c: \ wwwroot \ web.config
что:
<providerOption name="CompilerVersion" value="v3.5">
находится в разделе компиляторов system.codedom нашей стандартной веб-конфигурации. Я немного исследовал проблему. (Я также проверил подробности пространства имен на msdn , чтобы узнать об этом). Среди многих других решений я обнаружил в этом посте , в котором рекомендуется обновить файл FX_Schema.xml на нашем сервере. (Я думаю, что здесь проблема, пожалуйста, исправьте меня, если я ошибаюсь)
Я просмотрел файл fx_schema и, как определено в средстве просмотра событий, атрибут "providerOption" отсутствует в этой схеме! Вот копия раздела system.codedom из FX_schema.xml
<sectionSchema name="system.codedom">
<element name="compilers">
<collection addElement="compiler" removeElement="remove" clearElement="clear">
<attribute name="language" type="string" isCombinedKey="true" />
<attribute name="extension" type="string" isCombinedKey="true" />
<attribute name="type" type="string" />
<attribute name="warningLevel" type="int" />
<attribute name="compilerOptions" type="string" />
</collection>
</element>
</sectionSchema>
Я уверен, что я не могу быть единственным человеком, который имеет эту проблему, но кто-нибудь еще сталкивался с этим раньше и нашел решение?
РЕДАКТИРОВАТЬ: Другой способ сделать это быстро (на IIS 7 в Windows 7)
В консоли управления IIS откройте свой веб-сайт MVC на домашней странице веб-сайта. Вы должны увидеть группы ASP.NET, IIS и Managment. В разделе «Управление» откройте «Редактор конфигурации». Я получаю сообщение об ошибке здесь
РЕДАКТИРОВАТЬ: Моя копия веб-конфигурации:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>