Сбой приложения с «внутренней ошибкой в ​​среде выполнения .NET» - PullRequest
102 голосов
/ 06 декабря 2010

У нас есть приложение, написанное для .NET 4.0, которое в выходные дни рухнуло, поместив следующее сообщение в журнал событий:

Приложение: PnrRetrieverService.exe Framework Версия: v4.0.30319
Описание: процесс был прерван из-за внутренней ошибки в .NET Runtime по IP 791F9AAA (79140000) с кодом выхода 80131506.

Это на Windows Server 2003 R2 Standard Edition. Поиск этой ошибки не нашел ничего подходящего. Например, это не происходит в VS Studio, но вместо этого на производственной коробке; когда служба была перезапущена, проблем больше не было.

Как можно диагностировать ошибку в .NET Runtime?

Ответы [ 16 ]

0 голосов
/ 21 марта 2019

В моем случае проблема была из-за дублирующих перенаправлений привязки в моем web.config.Подробнее здесь .

Я предполагаю, что это произошло из-за того, что NuGet изменил перенаправления привязки, но, например, это выглядело так:

  <dependentAssembly>
    <assemblyIdentity name="Lucene.Net" publicKeyToken="85089178b9ac3181"/>
    <bindingRedirect oldVersion="0.0.0.0-2.9.4.0" newVersion="3.0.3.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
    <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Lucene.Net" publicKeyToken="85089178b9ac3181"/>
    <bindingRedirect oldVersion="0.0.0.0-2.9.4.0" newVersion="3.0.3.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
    <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0"/>
  </dependentAssembly>

Удаление всех дубликатоврешил проблему.

0 голосов
/ 23 августа 2018

Каждые 5-10 минут мой пул приложений продолжал падать с этим кодом выхода.Я не хочу разрушать ваше доверие к сборщику мусора, но у меня сработало следующее решение:

Я добавил задание, которое вызывает GC.GetTotalMemory(true) каждую минуту.

Полагаю, что дляПо какой-то причине ГХ не выполняет автоматическую проверку памяти достаточно часто на предмет большого количества одноразовых предметов, которые я использую.

0 голосов
/ 17 апреля 2017

Это может быть исключение в финализаторе. Если вы делаете Pattern of ~ Class () {Dispose (false); } проверьте, что вы используете как неуправляемый ресурс. Просто сделайте попытку .. поймайте там и все будет в порядке.

Мы нашли проблему, так как у нас был этот загадочный сбой без логов Мы выполнили обычный рекомендуемый способ использования «void Dispose (bool dispose)».

Глядя на ответы на этот вопрос о финализаторе, мы нашли возможное место, где удаление неуправляемых ресурсов может вызвать исключение.

Оказывается, где-то мы не распорядились объектом должным образом, поэтому финализатор принял дипозал неуправляемых ресурсов, и вот, произошло исключение.

В этом случае использовался API Kafka Rest для очистки клиента от Kafka. Кажется, что в какой-то момент возникло исключение, после чего эта проблема возникла.

0 голосов
/ 22 марта 2016

Framework версия: v4.0.30319 Описание: процесс был прерван из-за необработанного исключения. Информация об исключении: System.Reflection.TargetInvocationException

Я столкнулся с этой ошибкой, приложение работало нормально на некоторых компьютерах и на некоторых компьютерах, выдавая вышеуказанную ошибку. Я удаляю Framework 4.5 и переустанавливаю это решило мою проблему.

Cheer.

0 голосов
/ 04 сентября 2015

В моем случае эта ошибка произошла при входе в приложение SAP Business One 9.1. В событиях Windows я мог найти и другое событие ошибки в дополнение к сообщению OP:

Nome dell'applicazione che ha generato l'errore: SAP Business One.exe, versione: 9.10.160.0, timestamp: 0x551ad316
Nome del modulo che ha generato l'errore: clr.dll, versione: 4.0.30319.34014, timestamp: 0x52e0b784
Codice eccezione: 0xc0000005
Offset errore 0x00029f55
ID processo che ha generato l'errore: 0x1d7c
Ora di avvio dell'applicazione che ha generato l'errore: 0x01d0e6f4fa626e78
Percorso dell'applicazione che ha generato l'errore: C:\Program Files (x86)\SAP\SAP Business One\SAP Business One.exe
Percorso del modulo che ha generato l'errore: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
ID segnalazione: 3fd8e0e7-52e8-11e5-827f-74d435a9d02c
Nome completo pacchetto che ha generato l'errore: 
ID applicazione relativo al pacchetto che ha generato l'errore: 

Машина работает под управлением Windows 8.1 с установленной .NET Framework 4.0 и без версии 4.5. Из Интернета показалось, что это может быть также ошибкой в ​​.NET 4, я попытался установить .NET Framework 4.5.2 и решил проблему.

0 голосов
/ 11 марта 2015

В моем случае проблема была в библиотеке C ++ / CLI, в которой был вызов NtQuerySystemInformation ;иногда по какой-то причине (и при загадочных обстоятельствах ), когда она называлась кучей CLR, она была повреждена и приложение зависало.

Я решил проблему с помощью "пользовательской кучи""создан с HeapCreate и размещает там буферы, используемые этой функцией.

...