Windows 64-bit Support
Hi,
I was wondering if someone could clarify what is meant by the current version of Appistry CloudIQ not supporting 64 bit Windows. If 32-bit fabric applications run correctly on a 64-bit Windows OS, provided all the necessary support DLLs are available and 32-bit, does this mean that you cannot develop on a 64-bit OS?
I ask because I have a fabric of 32-bit Windows XP workers. I would like to develop a client application on my workstation, running Vista 64-bit, but I get an exception right away when I try to construct a Fabric object.
var fabric = new Fabric("239.255.0.100", 31000);
throws TypeInitializationException - 'Appistry.SwigWrappers.FabricApiWrapper' threw an exception.
The application is being built as 32-bit x86. Does the lack of 64-bit support mean I cannot build and run fabric client applications on Vista 64-bit?
Thanks!
Jeremy
Happy to! I can see the BadImageFormatException which I am used to seeing when I accidentally load a 32-bit DLL is a 64-bit .NET app. Not sure what to do about it here though.
{System.TypeInitializationException: The type initializer for 'Appistry.SwigWrappers.FabricApiWrapper' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Appistry.SwigWrappers.FabricApiWrapperPINVOKE' threw an exception. ---> System.TypeInitializationException: The type initializer for 'SWIGExceptionHelper' threw an exception. ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
at Appistry.SwigWrappers.FabricApiWrapperPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_FabricApiWrapper(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate)
at Appistry.SwigWrappers.FabricApiWrapperPINVOKE.SWIGExceptionHelper..cctor()
--- End of inner exception stack trace ---
at Appistry.SwigWrappers.FabricApiWrapperPINVOKE.SWIGExceptionHelper..ctor()
at Appistry.SwigWrappers.FabricApiWrapperPINVOKE..cctor()
--- End of inner exception stack trace ---
at Appistry.SwigWrappers.FabricApiWrapperPINVOKE.FAM_SUCCESS_get()
at Appistry.SwigWrappers.FabricApiWrapper..cctor()
--- End of inner exception stack trace ---
at Appistry.SwigWrappers.FabricApiWrapper.fab_new(String fabric_address, Int32 fabric_port, SWIGTYPE_p_fab_properties props)
at Appistry.FabricAPI.Fabric..ctor(String address, Int32 port)
at MyApp.MyAppConsole.HelloWorld.Main(String[] args) in D:\Svn\MyApp\src\MyAppConsole\HelloWorld.cs:line 13
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()}
" at Appistry.SwigWrappers.FabricApiWrapper.fab_new(String fabric_address, Int32 fabric_port, SWIGTYPE_p_fab_properties props)\r\n
at Appistry.FabricAPI.Fabric..ctor(String address, Int32 port)\r\n
at MyApp.MyAppConsole.HelloWorld.Main(String[] args) in D:\\Svn\\MyApp\\src\\MyAppConsole\\HelloWorld.cs:line 13\r\n at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)\r\n at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Threading.ThreadHelper.ThreadStart()"
Thanks for the stack Trace. It is slightly different that what we expected.
Is it easy for you to run your 64-bit client in as a 32-bit mode? Is so, I would try that to see if it resolves it.
Otherwise, I will test some things out here. We are setting up the environment, but it is taking some time. I will keep you posted on what we learn.
Thanks,
Mark
I apologize, this appears to be user error on my part. Though I had the active solution platform set to x86, this one project in the solution was set to Any CPU.
I discovered this when I tried using corflags /32bit+ on the built executable and it ran correctly!
Sorry for the false report.
Jeremy
No Problem. Things like that happen.
Interesting, the corflags /32bit+ was exactly what I was planning on using once I finished setting up the environment to build the 64-bit client.
Mark
Hi jqueen,
Is it possible to provide the full stack trace of the Exception? We have some ideas on what needs to be done, but we want to confirm before sending you in the wrong direction.
Thanks,
Mark