Как я могу исправить a.NET сбой приложения windows при запуске с кодом исключения: 0xE0434352?
Я построил .NET Windows Forms приложение в Visual Studio 2010. Я также создал соответствующий пакет установки / установки через Visual Studio 2010. Он построен как 32-разрядное (x86) приложение. (Мы используем сторонние элементы управления Windows Forms, которые являются только 32-разрядными).
Я могу запустить пакет установки и успешно развернуть его в других 64-разрядных средах Windows 7 и 32-разрядных окнах Windows XP. Установленное приложение работает нормально эти.
однако, когда я пытаюсь запустить Windows Server 2008 R2 - 64 бит, приложение аварийно завершает работу при запуске. Он успешно установлен через установщик без каких-либо ошибок.
Это, кажется, сбой при загрузке приложения. Я поставил окно сообщения в качестве первой строки в приложении, чтобы увидеть, если он получил мимо загрузки. Окно сообщения не отображается, поэтому я предполагаю, что это происходит во время загрузки/инициализации приложения.
до сих пор я не нашел много. Из деталей я вижу следующее:
Exception Code: E0434352
я порылся вокруг / погуглил, чтобы увидеть, если было что-то очевидное, но я ничего не видел. Я видел некоторые ссылки на возможное переполнение стека в CLR.
приложение Windows Forms построено со следующими ссылками:
- DevExpress
- Infragistics Winforms controls
- доступа к данным в Oracle DLL
- RabbitMQ
в чем проблема?
Как мне подойти к выяснению этого?
Как выполнить отладку для получения более полезной информации?
11 ответов:
0xE0434352 is код исключения для всех исключений .NET Так что не знаю. Как вы получили этот код исключения? Журнал событий?
лучше всего использовать отладчик, чтобы получить дополнительную информацию. Если отладчик Visual Studio не поможет вам, то вам может потребоваться проверить WinDbg С SOS. Смотрите здесь и здесь введение. Пусть он сломается на исключение, и посмотреть, если вы можете получить больше информации о том, почему.
Если вы подозреваете, что это проблема при загрузке сборок, вы можете проверить Журнал Слияния.
Если вы получаете эту ошибку из средства просмотра событий, вы должны увидеть другое событие ошибки (по крайней мере одно) из источника ".NET Runtime". Посмотрите на это сообщение об ошибке, поскольку оно будет содержать
Exceptionинформация.
краткое объяснение для 0xE0434352 находится в блоге почему я продолжаю получать код исключения e0434352? как и направления для отладки через WinDbg и cdb.
Я боролся с этим целый день, прося моих пользователей запускать отладочные версии программного обеспечения. Потому что, похоже, это не первая линия. Просто авария без информации.
затем я понял, что ошибка была внутри InitializeComponent формы.
чтобы получить исключение, нужно было удалить эту строку (или закомментировать ее):
System.Diagnostics.DebuggerStepThrough()Как только вы избавитесь от строки, вы получите нормальное исключение.
Я получал это, когда приложение развернуто. В моем случае я выбрал "это приложение с полным доверием" на вкладке Безопасность проекта, и это исправило его.
Я не уверен, поможет ли это кому-нибудь или нет, но поскольку это была моя проблема, я считаю, что стоит упомянуть:
Я получал эту ошибку, и это оказалось проблемой с платформой, для которой был построен EXE. Мы построили его для x86, и он должен был быть x64, из-за ссылки Oracle в проекте. Когда мы сделали это изменение, проблема ушла. Итак, посмотрите, есть ли у вас подобные конфликты.
похоже, что эта ошибка 0xe0434352 применяется к ряду различных ошибок.
в случае, если это кому-то поможет, я столкнулся с этой ошибкой, когда пытался установить свое приложение на новую установку Windows 10. Он работал на других машинах и выглядел так, как будто приложение на мгновение запустится перед смертью. После долгих проб и ошибок проблема оказалась в том, что приложение требовало DirectX9. Хотя более поздняя версия DirectX присутствовала, она должна была иметь версию 9. Надеюсь, что спасет кому-то одни разочарования.
чтобы исправить эту проблему для меня (поскольку ряд приложений внезапно начали выбрасывать это исключение, например, CorelDraw X6), я удалил среду выполнения .NET 4.5 и установил среду выполнения .NET 4. Две версии не могут быть установлены бок о бок, но они используют те же номера версий в GAC. Это вызывает проблемы, поскольку некоторые функции были амортизированы в 4.5.
DLL ад вернулся...
Так.. Я заметил в средстве просмотра событий, что этот сбой соответствует ошибке "System.IO.FileNotFoundException".
поэтому я выстрелил procmon и и заметил, что одна из библиотек DLL программы не смогла загрузить vcruntime140. Поэтому я просто установил vs15 redist, и это сработало.
мы получили эту ошибку, когда строка подключения к нашей базе данных была неправильной. Ключом к выяснению этого был запуск dotnet blah.dll, которая предоставила stacktrace, показывая нам, что указанный экземпляр sql server не может быть найден. Надеюсь, это кому-то поможет.
вопрос:
код приложения .Net прерывается до начала его выполнения [консольное приложение или приложение Windows]
ошибка получена: прервано с кодом ошибки "E0434352"
исключение: неизвестное исключение
Сценарий 1:
когда приложение уже выполнено, которое использовало некоторые из зависимых ресурсов, и эти ресурсы все еще при использовании с приложением выполняется, когда другое приложение или тот же exe запускается из какого-то другого источника, то один из приложений выдает ошибку
вариант 2:
когда приложение запускается планировщиком или автоматическими заданиями, оно может находиться в состоянии выполнения в фоновом режиме, между тем, когда вы пытаетесь снова запустить то же приложение, может быть вызвана ошибка.
устранение:
создать приложение, когда и где приложение освободить все свои ресурсы, как только завершена Убивать все фоновые процессы после закрытия программы Проверьте и избегайте выполнения приложения из нескольких источников, таких как пакетный процесс, планировщик задач и внешние инструменты одновременно. Проверьте наличие зависимостей приложений и ресурсов и при необходимости очистите код.
Comments