How do I fix a .NET windows application crashing at startup with Exception code: 0xE0434352?
I've built a .NET Windows Forms application in Visual Studio 2010. I also built a corresponding setup/install package via Visual Studio 2010. This is built as a 32-bit (x86) application. (We make use of third-party Windows Forms controls that are 32-bit only).
I am able to run the setup package and deploy successfully to other Windows 7 64-bit environments and 32 bit Windows XP boxes. The installed application runs fine on these.
However, when I attempt to run Windows Server 2008 R2 - 64 bit, the application crashes at startup. It installed successfully via the installer without any errors.
It appears to crash when loading the application. I put a message box as the first line in the application to see if it got past loading. The message box doesn't show up, so I assume that it occurs during loading/init of the application.
So far I haven't found much to go on. From the Details I see the following:
Exception Code: E0434352
I've fished around/googled to see if there was anything obvious, but I saw nothing. I saw some references to a possible stack overflow in the CLR.
The Windows Forms application is built with the following references:
- DevExpress
- Infragistics Winforms controls
- ORACLE DataAccess DLL
- RabbitMQ
What is the issue? How do I approach figuring this out? How do I debug to get more useful information?
Solution 1:
If you are getting that error from Event Viewer, you should see another error event (at least one) from the Source ".NET Runtime". Look at that error message as it will contain the Exception
info.
Solution 2:
0xE0434352 is the exception code for all .NET exceptions so that won't tell you much. How did you got this exception code? The event log?
Your best bet is to use a debugger to get more information. If the Visual Studio debugger won't help you, then you might need to check out WinDbg with SOS. See here and here for an introduction. Let it break on the exception, and see if you can get more information on the why.
If you suspect it is an issue when loading assemblies you might want to check out the Fusion Log.
Solution 3:
I'm not sure if this will help anyone or not, but since it was my problem, I figure it's worth mentioning:
I was getting this error, and it turned out to be a problem with the platform for which the EXE was built. We had it building for x86, and it needed to be x64, because of an Oracle reference in the project. When we made that change, the problem went away. So, see if you have any similar conflicts.
Solution 4:
It looks like this error 0xe0434352 applies to a number of different errors.
In case it helps anyone, I ran into this error when I was trying to install my application on a new Windows 10 installation. It worked on other machines, and looked like the app momentarily would start before dying. After much trial and error the problem turned out to be that the app required DirectX9. Though a later version of DirectX was present it had to have version 9. Hope that saves someone some frustration.
Solution 5:
I was fighting with this a whole day asking my users to run debug versions of the software. Because it looked like it didn't run the first line. Just a crash without information.
Then I realized that the error was inside the form's InitializeComponent.
The way to get an exception was to remove this line (or comment it out):
System.Diagnostics.DebuggerStepThrough()
Once you get rid of the line, you'll get a normal exception.