Archived

This forum has been archived. Please start a new discussion on GitHub.

Not a valid Win32 application

Good morning.

I have created a simple test IceBox Log service and deployed it in a Registry. Unfortunately, the service seems somehow misdeployed — the server icon is displayed in grey (please, see the grid_admin.jpg attached) and when I try to activate the server the computer's event log reads the following:

Adapter: server `LogWriterIceBox2' adapter `LogWriterIceBox2.LogWriterService.LogWriterAdapter' activation failed: is not a valid Win32 application.

NB: I have tried to start the IceBox service without the registry and it worked just fine. The problem appears only when the service is deployed in the registry.

Following is the application descriptor XML:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- This file was written by IceGrid Admin -->
<icegrid>
	<application name="LogWriterApplication">
		<service-template id="LogWriterServiceTemplate">
			<service name="LogWriterService" entry="DIAmatix.Services.iBox.Log.LogWriter">
				<adapter name="LogWriterAdapter" endpoints="tcp" id="${server}.${service}.LogWriterAdapter"/>
			</service>
		</service-template>

		<server-template id="LogWriterIceBoxTemplate">
			<parameter name="root_dir" default="D:\diamatix.services\log.service\"/>
			<parameter name="index" />
			<icebox id="LogWriterIceBox.${index}" activation="always" exe="${root_dir}\diamatix.services.logwriter.dll" pwd="${root_dir}\">
				<service-instance template="LogWriterServiceTemplate"/>
			</icebox>
		</server-template>


		<node name="Node.001">
			<server-instance template="LogWriterIceBoxTemplate" root_dir="D:\diamatix.services\log.service\" index="1">

			</server-instance>
		</node>

		<node name="Node.002">
			<server-instance template="LogWriterIceBoxTemplate" root_dir="D:\diamatix.services\log.service\" index="2">

			</server-instance>
		</node>

		<node name="Node.003">
			<server-instance template="LogWriterIceBoxTemplate" root_dir="E:\diamatix.services\log.service\" index="3">

			</server-instance>
		</node>

		<node name="Node.004">
			<server-instance template="LogWriterIceBoxTemplate" root_dir="D:\diamatix.services\log.service\" index="4">

			</server-instance>
		</node>
	</application>
</icegrid>

Comments

  • benoit
    benoit Rennes, France
    Hi,

    The error is caused by the following setting:
       exe="${root_dir}\diamatix.services.logwriter.dll"
    

    This should be set to "icebox.exe" (or "iceboxd.exe" if using debug) instead if your service is a C++ or C# IceBox service. If it's a Java service, it should be set to "java" and you should also specify the "<option>IceBox.Server</option>" XML element. Finally, you should correctly set the entry attribute of the <service> XML element to the entry point for your service.

    For an IceBox deployment example with IceGrid, you can check out the descriptors from the IceGrid/icebox demos located in the demo, demoj or democs directories of your Ice binary distribution.

    Cheers,
    Benoit.
  • benoit wrote: »
    Hi,

    The error is caused by the following setting:
       exe="${root_dir}\diamatix.services.logwriter.dll"
    


    Thank you very much, Benoit!
    Now everything works :) I'm happy :)