Archived

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

IceBox + services in subfolders

Hi.
I would like to place icebox services to their respective subfolders after building them in VS, like this:

/
|
+-config
|
+-services
|
+-log
|
+-auth
|
+- etc.

Ideally, I would like IceBox to treat the /services folder as a root and load the /services/log and /services/auth services from their folders.
I use IceGrid admin to deploy the services and unfortunately fail to manage it to load them.
I can use the pwd parameter but in this case the IceBox would search for DLLs in the specified folder and will not accept relative paths.

Is it at all possible to arrange such a layout?

Regards,
Dmitry.

Comments

  • benoit
    benoit Rennes, France
    Hi,

    I would expect setting the "pwd" attribute of the IceBox server descriptor to the path of the services directory and then using an entry point such as "services\log\HelloService:create" for the service to work.

    Cheers,
    Benoit.
  • IceGrid and .net assembly resolving issue
    benoit wrote: »
    Hi,

    I would expect setting the "pwd" attribute of the IceBox server descriptor to the path of the services directory and then using an entry point such as "services\log\HelloService:create" for the service to work.

    Cheers,
    Benoit.

    Benoit, thank you! I just don't understand why this hadn't worked before.

    Still, there is another problem, even more nasty one - assembly resolving issue. When a service is implemented in a number of .net assemblies loading the service is OK, but loading the rest of the dependent assemblies would fail.

    I have a LogWriter service written in C#. The service, utilizing the NHibernate ORM library, is to save LogEntry classes to the underlying database.

    I have prepared unit tests to be sure the logic works fine. It in fact is, but only in a windows application. If I start using the LogWriter service in an IceGrid node the NHibernate would not find the LogEntry assembly with its mapping information.

    The IceGrid probes for assemblies in its base directory: T:\Ice-3.3.0-VC90\bin\ in my case. The grid loads my service from T:/DIAmatixServices/e/DIAmatix.Services.Log.LogWriter/DIAmatix.Services.Log.DAL.DLL file but fails to resolve other assemblies that reside in the T:/DIAmatixServices/e/DIAmatix.Services.Log.LogWriter folder.

    What would you recommend in this case?

    Regards,
    Dmitry.
  • benoit
    benoit Rennes, France
    Hi Dmitry,

    It's not clear to me what the problem is but it sounds like this is more related to .NET assembly loading than IceGrid, for information on how .NET locates assembly I recommed checking out this Microsoft article here.

    Cheers,
    Benoit.