Система. Отказ ExecutionEngineException

Сущности, являющиеся членами классов, документируются только в том случае, если их класс задокументирован. Объекты, объявленные в области пространства имен, документируются только в том случае, если их пространство имен задокументировано. Объекты, объявленные в области видимости файла, документируются только в том случае, если их файл задокументирован.

Таким образом, чтобы документировать свободную функцию в глобальном пространстве имен, вам также понадобится строка вроде этой где-то в заголовочном файле, в которой она объявлена:

/** @file */

Или так:

/*! \file */
35
задан Community 23 May 2017 в 12:17
поделиться

9 ответов

Честно говоря, я видел это исключение только один раз, когда использовал инструменты Compuware DevPartner для профилирования и анализа кода. DevPartner глубоко зацикливается на ядре CLR, чтобы выполнять свою работу, но он полон ошибок, так что CLR становится хуже. Мне пришлось перезагрузить компьютер (и не забыть никогда больше не нажимать кнопки панели инструментов DevPartner), чтобы все вернулось к нормальному состоянию.

Если вы не используете devpartner, то, скорее всего, у вас есть неуправляемый код, который не работает. некоторая память, используемая CLR. Я бы посоветовал сначала выполнить перезагрузку, а затем попытаться отследить любую имеющуюся у вас ошибку, которая разрушает память. Ищите переполнение буфера, запись в неинициализированные указатели и другие обычные подозрения.

2
ответ дан 27 November 2019 в 15:43
поделиться

Я получил один из них, когда мой модуль C # (вызываемый приложением C ++ / MFC, созданным с помощью / CLR) непреднамеренно отменил ссылку на нулевой указатель. Таким образом, исключение может возникнуть из-за ошибки в «коде пользователя».

Кевин

0
ответ дан 27 November 2019 в 15:43
поделиться

Чтобы добавить к списку возможных причин, у меня была эта ошибка при попытке сериализовать IEnumerable <>, содержащий сложный тип.

Переход с IEnumerable <> на List <> устранил проблему.

0
ответ дан 27 November 2019 в 15:43
поделиться

Существует известная ошибка, когда служба WCF пытается вернуть IList или IEnumerable.

http://connect.microsoft.com/wcf/feedback/details/433569/wcf-throws-an-executionengineexception-when-returning-an-array-as-ilist-t

4
ответ дан 27 November 2019 в 15:43
поделиться

Была та же проблема - моя ошибка оказалась несоответствием аргументов между моим кодом C # и моей собственной библиотекой C ++. Я добавил аргумент к функции C ++ и не смог добавить его на стороне C #.

5
ответ дан 27 November 2019 в 15:43
поделиться

Хотя эта ветка к настоящему времени довольно старая, я упомяну свой собственный инцидент с этим исключением. Я столкнулся с этим при разработке расширения ArcGIS, написанного на VB.NET (Visual Studio 2005). ArcGIS в значительной степени полагается на технологию COM, поэтому задействовано взаимодействие .NET-COM. До сих пор я не нашел причину исключения, но полагаю, что это могло быть связано с накоплением невыпущенных экземпляров COM-объекта, поскольку исключение возникает только после того, как программное обеспечение обработало геометрию и числа для когда-то.

2
ответ дан 27 November 2019 в 15:43
поделиться

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

Может быть, это кому-то поможет ...

0
ответ дан 27 November 2019 в 15:43
поделиться

Недавно я обнаружил, что использование инструкции std в ассемблере для установки флага направления без его очистки, когда вы закончите ( cld ), может вызвать эту ошибку. Я использую .Net 4.0.

2
ответ дан 27 November 2019 в 15:43
поделиться

У меня это случилось, потому что я несколько раз вызывал :: FreeLibrary () с одной и той же РУЧКОЙ DLL. (DLL представляла собой управляемую dll C ++: управляемую оболочку C ++ над некоторыми функциями C #)

0
ответ дан 27 November 2019 в 15:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: