Согласно MSDN , есть «совет» о том, что приложение .NET, работающее под большой нагрузкой с одновременной сборкой мусора (либо <gcConcurrent enabled="true"/>
, либо не указано, так как это поведение по умолчанию), может выдатьExecutionEngineException.Кто-нибудь знает статью Microsoft KB или другой источник, который предоставляет дополнительную информацию по этому вопросу?
Мы испытали это непосредственно с приложением-службой Windows на базе NHibernate 3.2, которое неизменно падало через самое большее несколько часовоперация.Мы смогли отследить исключение для вызова ISession.Flush ().
На nhusers есть поток , сообщающий о том, что, похоже, возникает та же проблема.Его предложенный обходной путь, который должен был отключить параллельный GC, до сих пор работал для нас, хотя переключение на GC в режиме сервера (<gcServer enable="true"/>
), которое неявно отключает параллельный GC, также помогло.
Прежде чем отправлять это в MS как ошибку, я хотел бы узнать, есть ли у кого-нибудь дополнительная информация о сопутствующей нестабильности GC, о которой упоминается совет.