COM+ Application Root Directory being ignored RRS feed

  • Question

  • I work on an application which runs in dllhost.exe, configured as a COM+ server application, containing a mixture of 32-bit native code dlls and .NET assemblies.  The Application Root Directory is set to a folder containing an application.config and the binaries.  This has worked fine under 32-bit Windows XP, Vista (and before that 2000 and XP) on many different systems.

    I've just had my laptop upgraded to 64-bit Windows 7.  I created the COM+ application and build folder the same way I always do, but have errors starting up the application - it can't locate the assemblies or application.config file.  Using Fusion Log Viewer I can see that the AppBase is set to c:\Windows\SysWOW64, not to the Application Root Directory configured under the COM+ app.  I've verified that the root directory path is correct, but for some reason it's not taking effect, the root is set to the default root of dllhost.exe that the application is running under.

    One of my colleagues has this environment working on 64-bit Server 2008 R2, but I'm the first one to try on Windows 7.  Has something changed in the COM+ configuration that affects the Application Root Directory setting?

    Thursday, November 4, 2010 10:19 PM

All replies

  • Answering and old post as usual, but could be useful for someone else.

    In order to have your COM+ application properly using the Root Folder to load assemblies you need to create a file called application.manifest with the following content:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" />

    Otherwise the root folder will be ignored. Alternatively you can put on the GAC the assemblies you need but I always prefer to avoid the global assembly cache.

    Juan Casanova - My .Net babling blog

    Wednesday, July 25, 2012 9:53 AM