2
votes

Had two requests for the inner exception
Got it to error
This is the inner exception:

InnerException: System.Runtime.InteropServices.COMException
       Message=Retrieving the COM class factory for component with CLSID {606574F0-9DE1-47A4-8310-DB87E34EAB58} failed due to the following error: 80070032 The request is not supported. (Exception from HRESULT: 0x80070032).
       Source=mscorlib
       ErrorCode=-2147024846
       StackTrace:
            at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
            at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
            at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
            at System.Activator.CreateInstance(Type type, Boolean nonPublic)
            at System.Activator.CreateInstance(Type type)
            at Laber2a.MainWindow..ctor() in \\txxx\c$\Laber\share\MainWindow.xaml.cs:line 49
       InnerException: 

This is Line 49:

private IPROXLINK.IPRODDE iproDDE = new IPROXLINK.IPRODDE();

This is com app that we communicate with via DDE
It is what it is

Since this line is in the private top part it is not caught
My thought is to move the new to the ctor so I can catch it
Sorry when I reported the app only uses Microsoft components - pretty sure this is the only non Microsoft component.
That clasid is IPROXLINK.IPRODDE so pretty sure it is the culprit.
Also getting some Keberos tickets errors so that my be causing IPROXLINK.IPRODDE to fail.
The integration with IPROXLINK.IPRODDE is only critical for some operations
If it can be caught and then just report to the user that integration is not available for the current session that is clearly better then app not starting with an uncaught error

Please let me know what else I can provide

Production .NET WPF application that has been running for over a year
During that time numerous upgrades
Current version has been in place for over a month
It also fails a newer version in test (sporadically)

In the last two days start up fails with the following to the error log.
When it fails it fails immediately.
If it loads then it is stable.
It goes in waves.
I may start 20 times fine and then fail to start 5 times in a row.
Reboot does not seem to help.
Same symptom on more than one machine.
Last set of Windows Updates was 8/15
WPF application that only uses Microsoft controls and one old com that appears to be the problem.
Cannot get the error to reproduce in VisualStudio Debug mode.

In looking thru the even log this error was thrown a few time between 7/17 and 7/19.
Then no entries of that error until yesterday and had 20.

What can I do to isolate and fix the error?

In one failure it said line 5 which is
xmlns:local="clr-namespace:Laber"

Application error log:

Application: Laber.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.Windows.Markup.XamlParseException Stack: at System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri) at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean) at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext) at System.Windows.Application.LoadComponent(System.Uri, Boolean) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) at System.Threading.ExecutionContext.runTryCode(System.Object) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at System.Windows.Application.Run(System.Windows.Window) at System.Windows.Application.Run() at Laber.App.Main()

Then after (more recent in time get this error)

Faulting application name: Laber.exe, version: 1.0.0.0, time stamp: 0x521547a3
Faulting module name: KERNELBASE.dll, version: 6.1.7601.18015, time stamp: 0x50b83c8a
Exception code: 0xe0434352
Fault offset: 0x0000c41f
Faulting process id: 0xde8
Faulting application start time: 0x01ce9f3d46607243
Faulting application path: C:\Laber\Zipper\bin\Debug\Laber.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Report Id: 85537cb3-0b30-11e3-922e-3efeb4ee1870
2
Why the downvote? What can I supply?paparazzo
XAMLParseException should have an InnerException.Federico Berasategui
@HighCore Thanks we need to reproduce it again to the the InnerException I am on it now.paparazzo
Yes, I think the inner exception would be useful. The posted error doesn't seem to show the root cause of the errorTGH
Thanks 3 of us are trying to reproduce the error now. It seems to target when a customer is using the .exe - just kidding. It goes in spurts of stable and unstable.paparazzo

2 Answers

0
votes

Per the comments the InnerException lead to the answer

This line was failing. Old COM component. I was up at the top before any error catching.

private IPROXLINK.IPRODDE iproDDE = new IPROXLINK.IPRODDE();

The reason it failed sporadically is time was out of synch on some servers and Kerberos tickets were denied.

Moved the new to a try catch in the ctor

In the future I will only new intrinsic .NET types as private

-2
votes

What you can do to try and isolate the error is separate your whole program into 4 big try and catch statements, and then have a throw for each one. Each throw will be different and then you can narrow the root of the problem