Crash with custom ASCOM driver

A place to report problems and bugs in SharpCap
Forum rules
‍

If you have a problem or question, please check the FAQ to see if it already has an answer : https://www.sharpcap.co.uk/sharpcap-faqs

Please also read about Troubleshooting USB Issues before posting.

*** Please do not post license keys - please report any problems with licensing to 'admin' by private message ***

Please include the following details in any bug report:

* Version of SharpCap
* Camera and other hardware being user
* Operating system version
* Contents of the SharpCap log after the problem has occurred.
[If SharpCap crashes, please send the bug report when prompted instead of including the log]
Post Reply
grnmeira
Posts: 2
Joined: Wed Jan 07, 2026 5:28 pm

Crash with custom ASCOM driver

#1

Post by grnmeira »

This is not really a bug, please let me know if there's a better place for this discussion.

I'm developing an ASCOM camera driver (pretty basic at the moment, I'm at a prototyping phase) which works perfectly with NINA, but crashes Sharpcap (which is my intended target in the end). I see repeated calls to what seems to be the COM method "CameraXSize", but I don't see all those messages arriving at my COM event loop (I see it only once). Any ideas that could help me diagnose this problem?

This is the log lines I get from Sharpcap:

Code: Select all

Info    21:12:03.218520 #1  Starting SharpCap v4.1.14136.0 (X64, 64 bit) at 2026-02-06T21:12:03.1774359+00:00                                       in void 
...
Info    21:12:10.352075 #1  Capture Event : OpeningDevice                                                                                           in void SharpCap.MultiCaptureProvider.SendCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:10.354673 #1  OpeningDevice event received in UI thread                                                                               in async void SharpCap.ViewModels.SharpCapViewModel.appModel_OnCaptureEvent(object sender, CaptureEventArgs e)
Debug   21:12:10.357293 #1  Opening device : RustCam Camera (Rust + windows-rs) (via ASCOM Cameras)                                                 in void SharpCap.MultiCaptureProvider.OpenDevice(DeviceTagData deviceTag, ISensorDataProvider sensorDataProvider)
Debug   21:12:10.358171 #1  Started void SharpCap.Base.CaptureProviderBase<T>.Initialize(IImageDisplay previewTargetWindow, ISensorDataProvider sensorDataProvider)             in void SharpCap.Base.CaptureProviderBase<T>.Initialize(IImageDisplay previewTargetWindow, ISensorDataProvider sensorDataProvider)
Debug   21:12:10.359617 #1  Ended void SharpCap.Base.CaptureProviderBase<T>.Initialize(IImageDisplay previewTargetWindow, ISensorDataProvider sensorDataProvider)                   in void SharpCap.Base.CaptureProviderBase<T>.Initialize(IImageDisplay previewTargetWindow, ISensorDataProvider sensorDataProvider)
Info    21:12:10.360941 #1  Started void SharpCap.Base.CaptureProviderBase<T>.OpenDevice(DeviceTagData dtd)                                         in void SharpCap.Base.CaptureProviderBase<T>.OpenDevice(DeviceTagData dtd)
Debug   21:12:10.361455 #1  Started void SharpCap.Base.SimpleCaptureProvider.SetupDevice(DeviceTagData dtd)                                         in void SharpCap.Base.SimpleCaptureProvider.SetupDevice(DeviceTagData dtd)
Info    21:12:10.446259 #1  Created ASCOM Camera RustCam (RustCam Camera (Rust + windows-rs)), Version=1.0, InterfaceVersion=2, Info=RustCam ASCOM Driver built with windows-rs             in SharpCap.Cameras.ASCOM.NewCameraProxy(DeviceTagData dtd)+() => { }
Info    21:12:10.471697 #1  Setting ImageProvider CurrentDevice to SharpCap.Cameras.ASCOM.NewCameraProxy                                            in void SharpCap.Base.BaseImageProvider.set_CurrentDevice(ICameraProxy value)
Debug   21:12:10.472379 #1  Ended void SharpCap.Base.SimpleCaptureProvider.SetupDevice(DeviceTagData dtd)                                           in void SharpCap.Base.SimpleCaptureProvider.SetupDevice(DeviceTagData dtd)
Info    21:12:10.473797 #1  Started CaptureControl SharpCap.Base.CaptureProviderBase<T>.CreateCaptureControl()                                      in CaptureControl SharpCap.Base.CaptureProviderBase<T>.CreateCaptureControl()
Debug   21:12:10.474466 #1  Started ControlMap SharpCap.Base.SimpleCaptureProvider.GetControls()                                                    in ControlMap SharpCap.Base.SimpleCaptureProvider.GetControls()
Warning 21:12:10.566967 #1  Exception from SharpCap.Cameras.ASCOM.IASCOMCameraProxy.get_OffsetMin() : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation. 
Stack Trace:   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26                   in void SharpCap.Base.Utilities.LoggingProxyBase.LogException(MethodInfo targetMethod, object[] args, Exception exception)
Warning 21:12:10.567520 #1  Inner Exception : ASCOM.NotImplementedException: OffsetMin is only supported by Interface Versions 3 and above. is not implemented in this driver.
   at int ASCOM.Com.DriverAccess.Camera.get_OffsetMin() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 489
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_OffsetMin() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 337
   at object InvokeStub_IASCOMCameraProxy.get_OffsetMin(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                   in void SharpCap.Base.Utilities.LoggingProxyBase.LogException(MethodInfo targetMethod, object[] args, Exception exception)
Info    21:12:10.567976 #1  ASCOM Camera does not have integer based offset control : OffsetMin is only supported by Interface Versions 3 and above. is not implemented in this driver.             in IBasePropertyControl SharpCap.Cameras.ASCOM.NewCameraProxy.BuildOffsetControl()
Warning 21:12:10.569649 #1  Exception from SharpCap.Cameras.ASCOM.IASCOMCameraProxy.get_Offset() : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation. 
Stack Trace:   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26                  in void SharpCap.Base.Utilities.LoggingProxyBase.LogException(MethodInfo targetMethod, object[] args, Exception exception)
Warning 21:12:10.569807 #1  Inner Exception : ASCOM.NotImplementedException: Offset is only supported by Interface Versions 3 and above. is not implemented in this driver.
   at int ASCOM.Com.DriverAccess.Camera.get_Offset() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 454
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_Offset() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 333
   at object InvokeStub_IASCOMCameraProxy.get_Offset(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                   in void SharpCap.Base.Utilities.LoggingProxyBase.LogException(MethodInfo targetMethod, object[] args, Exception exception)
Info    21:12:10.570134 #1  ASCOM Camera does not have offset list : Offset is only supported by Interface Versions 3 and above. is not implemented in this driver.             in IBasePropertyControl SharpCap.Cameras.ASCOM.NewCameraProxy.BuildOffsetControl()
Info    21:12:10.601469 #1  Camera reports an exposure range of 0.0010s to 3600.00s                                                                 in List<IBasePropertyControl> SharpCap.Cameras.ASCOM.NewCameraProxy.GetCameraControls()
Info    21:12:10.652048 #1  Ended CaptureControl SharpCap.Base.CaptureProviderBase<T>.CreateCaptureControl()                                        in CaptureControl SharpCap.Base.CaptureProviderBase<T>.CreateCaptureControl()
Info    21:12:10.652386 #1  Ended void SharpCap.Base.CaptureProviderBase<T>.OpenDevice(DeviceTagData dtd)                                           in void SharpCap.Base.CaptureProviderBase<T>.OpenDevice(DeviceTagData dtd)
Info    21:12:10.652498 #1  Capture Event : DeviceOpened                                                                                            in void SharpCap.MultiCaptureProvider.SendCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:10.655355 #1  DeviceOpened event received in UI thread                                                                                in async void SharpCap.ViewModels.SharpCapViewModel.appModel_OnCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:10.663177 #1  Setup camera controls, 35 found                                                                                         in void SharpCap.Models.Controls.SetCaptureControl(CaptureControl cc)
Info    21:12:10.669333 #1  Destroying mount proxy which was a SharpCap.Models.NullProxy for On Camera ST4                                          in void SharpCap.Models.Mount.CleanupProxy()
Debug   21:12:10.674087 #1  Started bool SharpCap.Models.Camera.ApplyDefaultProfile()                                                               in bool SharpCap.Models.Camera.ApplyDefaultProfile()
Debug   21:12:10.675156 #1  Ended (No default defined for this camera) bool SharpCap.Models.Camera.ApplyDefaultProfile()                            in bool SharpCap.Models.Camera.ApplyDefaultProfile()
Info    21:12:10.676691 #1  Starting preview on RustCam Camera (Rust + windows-rs) [RustCam Sensor]                                                 in void SharpCap.MultiCaptureProvider.StartPreview(PreviewChangeReason reason)
Debug   21:12:10.909906 #1  The WPF render thread has been located for monitoring at thread ID 21720                                                in ProcessThread SharpCap.Base.ThreadLoadMonitor.FindWPFRenderThread()
Info    21:12:10.910447 #1  Started void SharpCap.Base.CaptureProviderBase<T>.StartPreview(PreviewChangeReason reason)                              in void SharpCap.Base.CaptureProviderBase<T>.StartPreview(PreviewChangeReason reason)
Info    21:12:10.910999 #1  Starting Preview on RustCam Camera (Rust + windows-rs) [RustCam Sensor], 1280x960, Mono, 8bits in Live mode.            in void SharpCap.Base.CaptureProviderBase<T>.StartPreview(PreviewChangeReason reason)
Debug   21:12:10.921615 #1  Started void SharpCap.Base.BaseImageProvider.Start()                                                                    in void SharpCap.Base.BaseImageProvider.Start()
Debug   21:12:10.922194 #1  Started void SharpCap.Base.BaseImageProvider.DropPendingFrame()                                                         in void SharpCap.Base.BaseImageProvider.DropPendingFrame()
Debug   21:12:10.922553 #1  Ended void SharpCap.Base.BaseImageProvider.DropPendingFrame()                                                           in void SharpCap.Base.BaseImageProvider.DropPendingFrame()
Debug   21:12:10.941253 #1  Started void SharpCap.Base.CameraProxyBase.StartPreview()                                                               in void SharpCap.Base.CameraProxyBase.StartPreview()
Info    21:12:10.943931 #25 =='Grab Thread' (New Thread)
Debug   21:12:10.944051 #25 Started void SharpCap.Base.CameraProxyBase.GrabThreadProc()                                                             in void SharpCap.Base.CameraProxyBase.GrabThreadProc()
Warning 21:12:10.946027 #25 Exception from SharpCap.Cameras.ASCOM.IASCOMCameraProxy.get_CameraXSize() : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation. 
Stack Trace:   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26             in void SharpCap.Base.Utilities.LoggingProxyBase.LogException(MethodInfo targetMethod, object[] args, Exception exception)
Warning 21:12:10.946128 #25 Inner Exception : System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                    in void SharpCap.Base.Utilities.LoggingProxyBase.LogException(MethodInfo targetMethod, object[] args, Exception exception)
Warning 21:12:10.947419 #25 Processing camera exception : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation. 
Stack Trace:   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
   at int generatedProxy_2.get_CameraXSize()
   at int DisconnectionAwareASCOMCameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/DisconnectionAwareASCOMCameraProxy.cs:line 99
   at void SharpCap.Cameras.ASCOM.NewCameraProxy.SetupGrabThread() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/NewCameraProxy.cs:line 828
   at void SharpCap.Base.CameraProxyBase.GrabThreadProc() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/CameraProxyBase.cs:line 617              in void SharpCap.Base.CameraProxyBase.SetExceptionData(Exception e)
Warning 21:12:10.947494 #25 Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                in void SharpCap.Base.CameraProxyBase.SetExceptionData(Exception e)
Warning 21:12:10.947544 #25 Inner Exception : System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                    in void SharpCap.Base.CameraProxyBase.SetExceptionData(Exception e)
Error   21:12:10.948834 #25 Setting up grab thread : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation. ()                   in void SharpCap.Base.CameraProxyBase.GrabThreadProc()
Error   21:12:10.948949 #25 Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                in void SharpCap.Base.CameraProxyBase.GrabThreadProc()
Error   21:12:10.949118 #25 Inner Exception : System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                    in void SharpCap.Base.CameraProxyBase.GrabThreadProc()
Error   21:12:10.952362 #1  Starting preview on RustCam Camera (Rust + windows-rs) [RustCam Sensor] : Exception of type 'CameraException' : Camera failed to start (Exception has been thrown by the target of an invocation. on RustCam Camera (Rust + windows-rs) [RustCam Sensor]) 
Stack Trace:   at void SharpCap.Base.CameraProxyBase.StartPreview() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/CameraProxyBase.cs:line 370               in void SharpCap.Base.CameraProxyBase.StartPreview()
Error   21:12:10.952494 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
   at int generatedProxy_2.get_CameraXSize()
   at int DisconnectionAwareASCOMCameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/DisconnectionAwareASCOMCameraProxy.cs:line 99
   at void SharpCap.Cameras.ASCOM.NewCameraProxy.SetupGrabThread() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/NewCameraProxy.cs:line 828
   at void SharpCap.Base.CameraProxyBase.GrabThreadProc() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/CameraProxyBase.cs:line 617             in void SharpCap.Base.CameraProxyBase.StartPreview()
Error   21:12:10.952638 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                in void SharpCap.Base.CameraProxyBase.StartPreview()
Error   21:12:10.952857 #1  Inner Exception : System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                    in void SharpCap.Base.CameraProxyBase.StartPreview()
Warning 21:12:10.952998 #1  Processing camera exception : Exception of type 'CameraException' : Camera failed to start (Exception has been thrown by the target of an invocation. on RustCam Camera (Rust + windows-rs) [RustCam Sensor]) ()            in void SharpCap.Base.CameraProxyBase.SetExceptionData(Exception e)
Warning 21:12:10.953109 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
   at int generatedProxy_2.get_CameraXSize()
   at int DisconnectionAwareASCOMCameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/DisconnectionAwareASCOMCameraProxy.cs:line 99
   at void SharpCap.Cameras.ASCOM.NewCameraProxy.SetupGrabThread() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/NewCameraProxy.cs:line 828
   at void SharpCap.Base.CameraProxyBase.GrabThreadProc() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/CameraProxyBase.cs:line 617             in void SharpCap.Base.CameraProxyBase.SetExceptionData(Exception e)
Warning 21:12:10.953238 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                in void SharpCap.Base.CameraProxyBase.SetExceptionData(Exception e)
Warning 21:12:10.953377 #1  Inner Exception : System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                    in void SharpCap.Base.CameraProxyBase.SetExceptionData(Exception e)
Error   21:12:10.953737 #1  Capture Provider Exception  : Exception of type 'CameraException' : Camera failed to start (Exception has been thrown by the target of an invocation. on RustCam Camera (Rust + windows-rs) [RustCam Sensor]) ()            in void SharpCap.Base.CaptureProviderBase<T>.ReportException(Exception e, string additionalErrorMessage)
Error   21:12:10.953867 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
   at int generatedProxy_2.get_CameraXSize()
   at int DisconnectionAwareASCOMCameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/DisconnectionAwareASCOMCameraProxy.cs:line 99
   at void SharpCap.Cameras.ASCOM.NewCameraProxy.SetupGrabThread() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/NewCameraProxy.cs:line 828
   at void SharpCap.Base.CameraProxyBase.GrabThreadProc() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/CameraProxyBase.cs:line 617             in void SharpCap.Base.CaptureProviderBase<T>.ReportException(Exception e, string additionalErrorMessage)
Error   21:12:10.953981 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                in void SharpCap.Base.CaptureProviderBase<T>.ReportException(Exception e, string additionalErrorMessage)
Error   21:12:10.954117 #1  Inner Exception : System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                    in void SharpCap.Base.CaptureProviderBase<T>.ReportException(Exception e, string additionalErrorMessage)
Error   21:12:10.956524 #1  Opening Camera : Exception of type 'CameraException' : Camera failed to start (Exception has been thrown by the target of an invocation. on RustCam Camera (Rust + windows-rs) [RustCam Sensor]) ()             in bool SharpCap.Models.Camera.OpenDevice(bool inLiveView)
Error   21:12:10.956695 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
   at int generatedProxy_2.get_CameraXSize()
   at int DisconnectionAwareASCOMCameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/DisconnectionAwareASCOMCameraProxy.cs:line 99
   at void SharpCap.Cameras.ASCOM.NewCameraProxy.SetupGrabThread() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/NewCameraProxy.cs:line 828
   at void SharpCap.Base.CameraProxyBase.GrabThreadProc() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/CameraProxyBase.cs:line 617             in bool SharpCap.Models.Camera.OpenDevice(bool inLiveView)
Error   21:12:10.956807 #1  Inner Exception : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
   at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
   at object SharpCap.Base.Utilities.LoggingProxyBase.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Base/Utilities/LoggingProxy.cs:line 26
   at int generatedProxy_1.get_CameraXSize()
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                in bool SharpCap.Models.Camera.OpenDevice(bool inLiveView)
Error   21:12:10.956940 #1  Inner Exception : System.MissingMethodException: .ctor
   at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
   at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
   at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
   at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
   at object CallSite.Target(Closure, CallSite, object)
   at int ASCOM.Com.DriverAccess.Camera.get_CameraXSize() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/Camera.cs:line 118
   at int SharpCap.Cameras.ASCOM.CameraProxy.get_CameraXSize() in C:/Documents/Source Code/SharpCap4.1/src/SharpCap.Cameras.ASCOM/CameraProxy.cs:line 202
   at object InvokeStub_IASCOMCameraProxy.get_CameraXSize(object, object, IntPtr*)
   at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)                    in bool SharpCap.Models.Camera.OpenDevice(bool inLiveView)
Info    21:12:11.952548 #25 Capture Event : DeviceLost                                                                                              in void SharpCap.MultiCaptureProvider.SendCaptureEvent(object sender, CaptureEventArgs e)
Debug   21:12:11.954457 #1  Notification (Status=Error): Your camera seems to have been disconnected or has stopped responding. Try re-selecting the camera, closing and then re-opening SharpCap or unplugging and re-plugging the camera. The error detail is : Error setting up the camera - Exception has been thrown by the target of an invocation.               in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info    21:12:11.957215 #1  Changing camera from RustCam Camera (Rust + windows-rs) to none                                                         in void SharpCap.Models.Application.SelectNewCamera(Camera value)
Info    21:12:11.991789 #1  Started void SharpCap.Base.CaptureProviderBase<T>.CloseDevice()                                                         in void SharpCap.Base.CaptureProviderBase<T>.CloseDevice()
Info    21:12:11.991955 #1  Capture Event : DeviceClosing                                                                                           in void SharpCap.MultiCaptureProvider.SendCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:11.993290 #1  DeviceClosing event received in UI thread                                                                               in async void SharpCap.ViewModels.SharpCapViewModel.appModel_OnCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:11.994047 #1  Destroying mount proxy which was a SharpCap.Models.NullProxy for On Camera ST4                                          in void SharpCap.Models.Mount.CleanupProxy()
Debug   21:12:11.994612 #1  Started void SharpCap.Base.CaptureProviderBase<T>.CloseTheImageProvider()                                               in void SharpCap.Base.CaptureProviderBase<T>.CloseTheImageProvider()
Debug   21:12:11.995007 #1  Started void SharpCap.Base.BaseImageProvider.Close()                                                                    in void SharpCap.Base.BaseImageProvider.Close()
Debug   21:12:11.995635 #1  Started void SharpCap.Base.BaseImageProvider.Stop()                                                                     in void SharpCap.Base.BaseImageProvider.Stop()
Info    21:12:11.995770 #1  Stopping preview, 0 frames processed, 0 frames dropped                                                                  in void SharpCap.Base.BaseImageProvider.Stop()
Debug   21:12:11.996278 #1  Started void SharpCap.Base.CameraProxyBase.StopPreview()                                                                in void SharpCap.Base.CameraProxyBase.StopPreview()
Debug   21:12:11.996695 #1  Started void SharpCap.Base.BaseImageProvider.DropPendingFrame()                                                         in void SharpCap.Base.BaseImageProvider.DropPendingFrame()
Debug   21:12:11.996971 #1  Ended void SharpCap.Base.BaseImageProvider.DropPendingFrame()                                                           in void SharpCap.Base.BaseImageProvider.DropPendingFrame()
Debug   21:12:11.997347 #1  Ended void SharpCap.Base.BaseImageProvider.Stop()                                                                       in void SharpCap.Base.BaseImageProvider.Stop()
Info    21:12:12.005741 #1  Started void SharpCap.Base.CameraProxyBase.Dispose(bool disposing)                                                      in void SharpCap.Base.CameraProxyBase.Dispose(bool disposing)
Info    21:12:12.005964 #1  Setting ImageProvider CurrentDevice to                                                                                  in void SharpCap.Base.BaseImageProvider.set_CurrentDevice(ICameraProxy value)
Debug   21:12:12.006221 #1  Ended void SharpCap.Base.BaseImageProvider.Close()                                                                      in void SharpCap.Base.BaseImageProvider.Close()
Debug   21:12:12.006521 #1  Ended void SharpCap.Base.CaptureProviderBase<T>.CloseTheImageProvider()                                                 in void SharpCap.Base.CaptureProviderBase<T>.CloseTheImageProvider()
Info    21:12:12.007155 #1  Cleaning up camera controls                                                                                             in void SharpCap.Base.PropertyControls.CaptureControl.Dispose()
Debug   21:12:12.008975 #1  Started void SharpCap.Base.SimpleCaptureProvider.OnDeviceClosed()                                                       in void SharpCap.Base.SimpleCaptureProvider.OnDeviceClosed()
Debug   21:12:12.009236 #1  Ended void SharpCap.Base.SimpleCaptureProvider.OnDeviceClosed()                                                         in void SharpCap.Base.SimpleCaptureProvider.OnDeviceClosed()
Info    21:12:12.009525 #1  Ended void SharpCap.Base.CaptureProviderBase<T>.CloseDevice()                                                           in void SharpCap.Base.CaptureProviderBase<T>.CloseDevice()
Info    21:12:12.010651 #1  Capture Event : DeviceClosed                                                                                            in void SharpCap.MultiCaptureProvider.SendCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:12.011261 #1  DeviceClosed event received in UI thread                                                                                in async void SharpCap.ViewModels.SharpCapViewModel.appModel_OnCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:12.015885 #1  Destroying mount proxy which was a SharpCap.Models.NullProxy for On Camera ST4                                          in void SharpCap.Models.Mount.CleanupProxy()
Info    21:12:12.028081 #1  Started void SharpCap.Base.CaptureProviderBase<T>.Dispose(bool bDisposing)                                              in void SharpCap.Base.CaptureProviderBase<T>.Dispose(bool bDisposing)
Info    21:12:12.028293 #1  Disposing of NewAscomCaptureProvider                                                                                    in void SharpCap.Base.CaptureProviderBase<T>.Dispose(bool bDisposing)
Debug   21:12:12.030444 #1  Started void SharpCap.Base.BaseImageProvider.Dispose(bool disposing)                                                    in void SharpCap.Base.BaseImageProvider.Dispose(bool disposing)
Debug   21:12:12.031281 #1  Ended void SharpCap.Base.BaseImageProvider.Dispose(bool disposing)                                                      in void SharpCap.Base.BaseImageProvider.Dispose(bool disposing)
Info    21:12:12.031799 #1  Ended void SharpCap.Base.CaptureProviderBase<T>.Dispose(bool bDisposing)                                                in void SharpCap.Base.CaptureProviderBase<T>.Dispose(bool bDisposing)
Info    21:12:12.032723 #1  Controls cleared                                                                                                        in void SharpCap.Models.Controls.Clear()
Info    21:12:12.061590 #1  DeviceLost event received in UI thread                                                                                  in async void SharpCap.ViewModels.SharpCapViewModel.appModel_OnCaptureEvent(object sender, CaptureEventArgs e)
Info    21:12:12.062057 #1  Destroying mount proxy which was a SharpCap.Models.NullProxy for On Camera ST4                                          in void SharpCap.Models.Mount.CleanupProxy()
Info    21:12:13.362972 #1  Toolbar/Menu input : SharpCap.ViewModels.Actions.OpenCameraAction RustCam Camera (Rust + windows-rs) complete           in async Task SharpCap.ViewModels.UIAction.ExecuteAsync()
Info    21:12:16.758233 #1  Toolbar/Menu input : SharpCap.ViewModels.Actions.ShowLogAction  executing                                               in async Task SharpCap.ViewModels.UIAction.ExecuteAsync()
Info    21:12:16.927667 #1  Toolbar/Menu input : SharpCap.ViewModels.Actions.ShowLogAction  complete                                                in async Task SharpCap.ViewModels.UIAction.ExecuteAsync()
User avatar
admin
Site Admin
Posts: 17517
Joined: Sat Feb 11, 2017 3:52 pm
Location: Vale of the White Horse, UK
Contact:

Re: Crash with custom ASCOM driver

#2

Post by admin »

Hi,

it looks like the ASCOM Library that SharpCap uses (https://github.com/ASCOMInitiative/ASCOMLibrary) is not finding the 'CameraXSize' property on your ASCOM driver for some reason, so when SharpCap queries that property a 'MissingMethodException' gets thrown by the library without the call ever making it to your code.

From the log entries, it looks like you are developing in rust, so I guess you end up with a driver written in native code and you are using COM support to implement the required ASCOM interfaces. I guess that somehow the ASCOM Library that SharpCap is using doesn't like your implementation while NINA (Maybe that is using older/different ASCOM interface code) is working fine.

I would guess that the place to start looking is the way that you have specified that your rust object implements the ICameraV3 interface to see if anything there could be done differently. It might also help to download and build the ASCOM library from the github link above (ASCOM.COM.Components), then you could debug a simple .NET console app using that library to access your driver to see if you see anything more by being able to get inside the calling code. Note that SharpCap uses .NET8 (maybe NINA uses a different version).

cheers,

Robin
grnmeira
Posts: 2
Joined: Wed Jan 07, 2026 5:28 pm

Re: Crash with custom ASCOM driver

#3

Post by grnmeira »

Thanks a lot for the response Robin.

The funny thing about it not really finding the 'CameraXSize' property is that I do see it being called. I see it being resolved and called from the logs of my ASCOM driver. To the point of even when I was trying different return type sizes, just for testing purposes, Sharpcap would show errors related to type conversations.

In theory I'm trying to implement an ICameraV4, should that work with Sharpcap too? I did notice a couple of problems with my interface after I posted this questions, but after everything was fixed, the problem still happened.

I do like the idea of the test app though. Thanks for Sharing. I'll give it a shot.
User avatar
admin
Site Admin
Posts: 17517
Joined: Sat Feb 11, 2017 3:52 pm
Location: Vale of the White Horse, UK
Contact:

Re: Crash with custom ASCOM driver

#4

Post by admin »

Hi,

SharpCap doesn't currently use any of the ICameraV4 methods directly (they are mostly related to asynchronous connection and disconnection, which SharpCap already handles in a different way). However the ASCOM Library might convert some of SharpCap's request (like setting the connected property) into ICameraV4 requests if it detects that interface.

I do remember from having to do C++ based COM object programming years back that there are a lot of ways to get things 'almost but not quite' right when it comes to implementing COM interfaces, registering COM objects, etc. Are you implementing IDispatch on your COM object? I think the ASCOM library will try IDispatch if it fails to find a method/property it wants the conventional way, so that might help. Or, if you are implementing IDispatch already, try disabling that and see what happens!

cheers,

Robin
Post Reply