Home Help Center

IceBox + services in subfolders

dmitry.medvedevdmitry.medvedev Member Dmitry N. MedvedevOrganization: PersonalProject: Casual Game Analytics Dashboard ✭✭
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

  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    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.
  • dmitry.medvedevdmitry.medvedev Member Dmitry N. MedvedevOrganization: PersonalProject: Casual Game Analytics Dashboard ✭✭
    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.
  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    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.
Sign In or Register to comment.