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

Как я могу исправить приложение Windows.NET при запуске с кодом исключения: 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

Я ловил рыбу /googled, чтобы увидеть, есть ли что-то очевидное, но я ничего не видел. Я видел некоторые ссылки на возможное переполнение стека в

4b9b3361

Ответ 1

0xE0434352 код исключения для всех исключений .NET, так что вы не будете много рассказывать. Как вы получили этот код исключения? Журнал событий?

Лучше всего использовать отладчик для получения дополнительной информации. Если отладчик Visual Studio вам не поможет, вам может потребоваться проверить WinDbg SOS. См. здесь и здесь для ознакомления. Пусть он нарушит исключение и посмотрит, сможете ли вы получить дополнительную информацию о причинах.

Если вы подозреваете, что это проблема при загрузке сборок, вы можете проверить журнал Fusion Log.

Ответ 2

Если вы получаете эту ошибку из Event Viewer, вы должны увидеть другое событие ошибки (по крайней мере одно) из источника ".NET Runtime". Посмотрите на это сообщение об ошибке, так как оно будет содержать информацию Exception.

Ответ 4

Я боролся с этим целый день, прося моих пользователей запустить отладочные версии программного обеспечения. Потому что это выглядело так, как будто первая строка не запускалась. Просто авария без информации.

Тогда я понял, что ошибка была внутри формы InitializeComponent.

Способ получения исключения состоял в том, чтобы удалить эту строку (или прокомментировать ее):

System.Diagnostics.DebuggerStepThrough()

Как только вы избавитесь от строки, вы получите нормальное исключение.

Ответ 5

Я получал это, когда приложение было развернуто. В моем случае я выбрал "Это приложение полного доверия" на вкладке безопасности проекта и исправил его.

Ответ 6

Похоже, эта ошибка 0xe0434352 применяется к ряду различных ошибок.

В случае, если это кому-то поможет, я столкнулся с этой ошибкой, когда пытался установить приложение на новую установку Windows 10. Он работал на других машинах и выглядел так, как только приложение на мгновение начнется до смерти. После долгих проб и ошибок проблема оказалась в том, что приложение требовало DirectX9. Хотя более поздняя версия DirectX присутствовала, она должна была иметь версию 9. Надеюсь, что это избавит кого-то от разочарования.

Ответ 7

Чтобы исправить эту проблему для меня (так как ряд приложений внезапно выкинул это исключение, например, CorelDraw X6 был одним из них), я удалил среду выполнения .NET 4.5 и установил среду выполнения .NET 4. Две версии не могут быть установлены рядом друг с другом, но они используют те же номера версий в GAC. Это вызывает проблемы, поскольку некоторые из функций были обесценены в 4.5.

DLL Hell вернулся...

Ответ 8

Мы переходим к этой ошибке, если строка подключения к нашей базе данных неверна. Ключом к выяснению этого был запуск dotnet blah.dll, который предоставил stacktrace, показывающий нам, что указанный экземпляр SQL-сервера не найден. Надеюсь, это поможет кому-то.

Ответ 9

Итак, я заметил в просмотре событий, что этот сбой соответствует ошибке "System.IO.FileNotFoundException".

Итак, я выпустил ProcMon и заметил, что одна из DLL-программ не загружает vcruntime140. Поэтому я просто установил reds и vs15.

Ответ 10

Я не уверен, что это поможет кому-то или нет, но поскольку это была моя проблема, я считаю, что стоит упомянуть:

Я получал эту ошибку, и это оказалось проблемой с платформой, для которой был создан EXE. У нас было это для x86, и это должно было быть x64 из-за ссылки Oracle в проекте. Когда мы сделали это изменение, проблема исчезла. Итак, посмотрите, есть ли у вас подобные конфликты.