Mono application in a Mac fails with “System.MissingMethodException: Default constructor not found for type System.Configuration.ExeConfigurationHost”

StackOverflow https://stackoverflow.com/questions/8950365

Question

This code is basically making an HTTP call, when it tries it, it just fails but only when the application is packaged as a Mac application, this does not happen when I run the application inside of MonoDevelop.

Anyone has any hints of what this might be?

EDIT

I've seen people talking a lot about mkbundle and the config option but I don't see this option anywhere when I'm generating the Mac application package on MonoDevelop.

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for OfficeDrop.Core.Api.JsonOfficeDropApi ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.ServicePointManager ---> System.Configuration.ConfigurationErrorsException: Error Initializing the configuration system. ---> System.MissingMethodException: Default constructor not found for type System.Configuration.ExeConfigurationHost.
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0 
  at System.Configuration.InternalConfigurationSystem.Init (System.Type typeConfigHost, System.Object[] hostInitParams) [0x00000] in <filename unknown>:0 
  at System.Configuration.InternalConfigurationFactory.Create (System.Type typeConfigHost, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationManager.OpenExeConfigurationInternal (ConfigurationUserLevel userLevel, System.Reflection.Assembly calling_assembly, System.String exePath) [0x00000] in <filename unknown>:0 
  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 
  at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0 
  at System.Net.ServicePointManager..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at OfficeDrop.Core.Api.JsonOfficeDropApi..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
at SyncDropMac.MainWindowController..ctor () <0x0000b>
at SyncDropMac.AppDelegate.FinishedLaunching (MonoMac.Foundation.NSObject) <0x00023>
at (wrapper dynamic-method) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x00030>
at (wrapper native-to-managed) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x000fb>
at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0x00003>
at MonoMac.AppKit.NSApplication.Main (string[]) <0x00017>
at SyncDropMac.MainClass.Main (string[]) <0x00017>

[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for OfficeDrop.Core.Api.JsonOfficeDropApi ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.ServicePointManager ---> System.Configuration.ConfigurationErrorsException: Error Initializing the configuration system. ---> System.MissingMethodException: Default constructor not found for type System.Configuration.ExeConfigurationHost.
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0 
  at System.Configuration.InternalConfigurationSystem.Init (System.Type typeConfigHost, System.Object[] hostInitParams) [0x00000] in <filename unknown>:0 
  at System.Configuration.InternalConfigurationFactory.Create (System.Type typeConfigHost, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationManager.OpenExeConfigurationInternal (ConfigurationUserLevel userLevel, System.Reflection.Assembly calling_assembly, System.String exePath) [0x00000] in <filename unknown>:0 
  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0 
  at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0 
  at System.Net.ServicePointManager..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at OfficeDrop.Core.Api.JsonOfficeDropApi..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
at SyncDropMac.MainWindowController..ctor () <0x0000b>
at SyncDropMac.AppDelegate.FinishedLaunching (MonoMac.Foundation.NSObject) <0x00023>
at (wrapper dynamic-method) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x00030>
at (wrapper native-to-managed) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x000fb>
at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0x00003>
at MonoMac.AppKit.NSApplication.Main (string[]) <0x00017>
at SyncDropMac.MainClass.Main (string[]) <0x00017>
Was it helpful?

Solution

This is a known issue. The workaround is to disable the managed linker in your application (since it will remove types are are using, by reflection, for the configuration of System.Net).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top