Подтвердить что ты не робот

Периодически просматривая ошибку ASP.NET CS0656: Отсутствующий член компилятора

Я вижу, что в моем веб-приложении иногда случается ошибка (казалось бы, случайным образом). Мы работаем под управлением Windows Server 2008R2, IIS 7.5, MVC3,.NET 4.5.

Compiler Error

То же самое происходит каждый раз: CS0656: Отсутствует компилятор, требуемый член 'Microsoft.CSharp.RuntimeBinder.Binder.BinaryOperation'

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

Ошибка возникает на совершенно новых изображениях VM (без предварительной установки нашего программного обеспечения), а также на машинах, на которых ранее было установлено наше программное обеспечение. Ошибка может возникнуть при первом запуске приложения или когда приложение затянулось достаточно, чтобы пул приложений IIS мог переработать рабочий процесс (так кажется).

С этим сложно справиться, поскольку я провел много исследований по этой ошибке и попробовал несколько решений, без везения. Кроме того, случайная частота, с которой происходит ошибка, очень затрудняет устранение неполадок. Любое понимание этой проблемы или идей о возможных решениях будет с благодарностью оценено. Я готов попробовать почти все на этом этапе.

4b9b3361

Ответ 1

Это выглядит знакомо. Если я напомню, что мне пришлось удалить каталог bin и перестроить, потому что более старые версии dll плавали вокруг, и этот класс был введен в .net 4.0

После некоторого исследования этот сайт, похоже, согласен: http://our.umbraco.org/forum/using/ui-questions/20474-Missing-compiler-required-member-MicrosoftCSharpRuntimeBinderBinderInvokeMember

Ответ 2

Попробовать Forest Cheng Ответ:

Какая версия вашей платформы .NET Framework? Компоненты времени выполнения ASP.NET MVC 3 требуют .NET Framework версии 4 и Visual Studio 2010 или Visual Web Developer 2010 Express. Хотите получить дополнительную информацию, просмотрите Заметки о выпуске ASP.NET MVC 3.

Ошибка компилятора CS0656 может быть вызвана следующими проблемами:

  • Устранение неполадок при установке общего языка выполнения.

  • У вас есть ссылка на сборку, которая определяет тип, который также находится в среде выполнения общего языка. Однако ваш тип сборки не определен так, как ожидает компилятор С#.

Поэтому проверьте свои ссылки, чтобы убедиться, что вы используете правильную версию среды выполнения общего языка.

Ответ 3

Раньше у нас были такие ошибки компиляции, которые случались случайным образом в течение долгого времени с .net 1 и выше. Для этого потребовалось удалить содержимое временной папки asp.net и найти другие обманные DLL, которые висели вокруг, даже внутри кеша визуальной студии. В общем, очистка временной папки asp.net сделает это.

Убедитесь, что вы все DLL файлы слишком явно находите, и помните, что DLL файлы выполняются из теневого каталога. Вот почему я вспоминаю (также из длинной далекой памяти), что есть подключение к домену appdomain по умолчанию, в который загружаются сборки, особенно если вы затем загружаете "ту же сборку", но из другого расположения файла.