ChilkatDotNet2.dll on x64 from a Windows Service
Here’s the secret to getting the .NET runtime to load the ChilkatDotNet2.dll from a Windows Service: It must be installed in the GAC, but there’s a separate GAC for 64-bit assemblies:
(with permission from the Chilkat customer) I was able to find a solution to this. I'm running a 64-bit version of Vista, and there turns out to be a separate GAC for 64-bit assemblies, and my application was searching there, and was not able to find the 32-bit Chilkat assembly. I installed the 64-bit version in addition to the 32-bit one in the GAC, and then the assembly loaded fine. Why this works when running as a normal application but not when running as a service I don't know, but at least it is working now. Thanks for your excellent support!
This was the original error:
(with permission from the Chilkat customer)
> > Thanks for your immediate response. I tried to install the assembly in the
> > GAC, but it does not seem to help. I am able to load another GAC assembly
> > without problems:
> >
> > Assembly a = Assembly.Load("Microsoft.Practices.EnterpriseLibrary.Logging,
> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=bf81d2044fa6b642");
> > Assembly b = Assembly.Load("ChilkatDotNet2, Version=8.7.0.0,
> > Culture=neutral, PublicKeyToken=eb5fc1fc52ef09bd");
> >
> > The first load does not throw an exception, but the second does:
> >
> > System.IO.FileNotFoundException: Could not load file or assembly
> > 'ChilkatDotNet2, Version=8.7.0.0, Culture=neutral,
> > PublicKeyToken=eb5fc1fc52ef09bd' or one of its dependencies. The system
> > cannot find the file specified.
> >
> > When turning on logging of the binding, it does not seem like the GAC is
> > searched at all, only the file system (current directory).
> >
> > I'm suspecting that this is a permission problem, but running the service as
> > LocalSystem or LocalService gives the same result.
admin
0
Tags :