Custom provider not showing up in configuration console

Topics: Building and extending application blocks
May 22, 2012 at 6:05 PM

Hi all, I created some custom providers for Enterprise Library 5 a while back (http://entlibextensions.codeplex.com/) to use Windows Server AppFabric for instance as backend repository for caching.

I was trying to help another user (http://entlib.codeplex.com/discussions/355788) and he told me in that thread that he's not able to see the custom providers in the console, although I created them with full integration (as you can see from the screenshots).

Anyway I decided to try and to my surprise he's right... partially...

I have a Windows 7 machine as main OS and a virtual machine running Windows Server 2008.

Both have Entlib 5.0, and if I copy the EntLibExtensions.dll file to the binaries of the installation, I can see the custom providers showing up only in the VM, whereas in the host machine they don't come up to be chosen!

I've tried downloading the source code and recompiling (striping out the Sharepoint part just to test AppFabric) and to my surprise the same happens.

Am I missing something in the host machine? Why is EntLibConfig not picking up the custom DLLs in the folder?

Thank you.

May 22, 2012 at 6:40 PM

Never mind, I found my answer after some time researching. :-)

As I suspected it's a DLL dependency issue, but not for the reason I thought...

The other problem is that in my VM I have installed AppFabric 1.0 whereas in W7 I just installed version 1.1, and go figure from the release notes: http://msdn.microsoft.com/en-us/library/hh361710.aspx

Caching assemblies are no longer registered in the Global Assembly Cache

In the previous release, the AppFabric Caching assemblies were registered in the Global Assembly Cache (GAC). With the release of AppFabric 1.1, the caching assemblies are located in the installation directory (defaults to .\Program Files\AppFabric 1.1 for Windows Server). When deploying cache client applications, you can deploy these assemblies locally with your application.

So as you would expect, if you copy the following files:

  • Microsoft.ApplicationServer.Caching.Client.dll
  • Microsoft.ApplicationServer.Caching.Core.dll

either to the entlib configuration tool folder or to the GAC, now you can see the custom provider showing up. :-)

The thing that annoys a little is that there are no exceptions or information on why the import failed (I didn't see anything relevant on the Event Viewer).

Also very weird is that the Sharepoint Trace Listener I created also references an external DLL (Microsoft.Sharepoint.dll) which is NOT present in my Windows 7 machine, however the provider does show up in the configuration console, how is this possible?

Thank you.