Не удалось найти провайдера CodeDom "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider..."

Я опубликовал свой сайт с помощью опции публикации visual studio для моего хоста.

мой хост использует инфраструктуру asp.net 4.5.1.

он отлично работает в локальном режиме, но после того, как я опубликовал его, он дал эту ошибку.

введите описание изображения здесь

моя локальная папка решения для визуальной студии содержит папку с именами пакетов и содержит некоторые файлы, связанные с ошибкой?

Это мой файл конфигурации (другие строки опущены для ясности):

введите описание изображения здесь

Спасибо.

Ответ 1

Версия сборки в папке bin должна соответствовать версии, указанной в разделе compilers файла web.config.

Эта ошибка происходит со мной, когда я обновляю папку bin сервера. Поскольку пакет Microsoft.CodeDom.Providers.DotNetCompilerPlatform был обновлен, мне нужно было обновить раздел compilers web.config.

Это можно сделать, просто обновив атрибут версии в приведенном ниже примере или заменив весь раздел версией разработчика.

<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>

Не требует перезапуска IIS.

Ответ 2

У меня была такая же ошибка как в WCF, так и в веб-приложении. Я только что удалил тег <system.codedom> и его содержимое, и он решил.