We have an ECL provider which work in our Sandbox and Development environments which are all single server Tridion CM instances.
We have now moved this code to our QA environment which has a single CM/CME environment and two dedicated publishing servers. The ECL provider works fine (we can browse ECL items, link to them and preview them in our templates) on the CME machine. However when we try to publish, we recieve the following error on the publishing server (and in the publishing queue):
The item ecl:778-XX-163599235-XXSet-file does not exist.
It seems that I have not configured the publisher correctly. So far I have:
- Added my provider to the folder
C:\ProgramData\SDL\SDL Tridion\External Content Library\AddInPipeline\AddIns
- Configured the
ExternalContentLibrary.xml
to be identical to the CME machine - Confirmed that
<add assemblyFileName="C:\Tridion\bin\Tridion.ExternalContentLibrary.TcmExtension.dll"/>
is in theTridion.ContentManager.config
file
I have validated that when the publishing service is running on the CME machine that the ECL provider works as expected.
What could I be missing? What services need to be running on a dedicated publishing server to make ECL work, and where might I find additional logs to trace the cause of the problem.
UPDATE
The complete error is:
Component: Templating
Errorcode: 0
User: NT AUTHORITY\SYSTEM
StackTrace Information Details:
at Tridion.ExternalContentLibrary.DomainModel.UserContext.GetMountPoint(IEclUri eclUri)
at Tridion.ExternalContentLibrary.DomainModel.UserContext.ResolveEclUri(TcmUri tcmUri, String& fileName)
at Tridion.ExternalContentLibrary.DomainModel.EclSession.TryGetEclUriFromTcmUri(String tcmUri)
at Tridion.ExternalContentLibrary.AddInPipeline.V2.DirectAdapters.AddInV2.EclSessionHostToAddInAdapter.TryGetEclUriFromTcmUri(String tcmUri)
at UrbanCherry.Net.SDLTridion.Templates.PublishMediaSet.Transform(Engine engine, Package package)
at Tridion.ContentManager.Templating.Assembly.AssemblyMediator.Transform(Engine engine, Template template, Package package)
at Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.RunTemplate(Engine engine, Package package, String templateUri, String className)
at Tridion.Templating.CSharpTemplate.CSharpSourceTemplate.Transform(Engine __engine, Package __package)
at Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.Transform(Engine engine, Template template, Package package)
at Tridion.ContentManager.Templating.Engine.ExecuteTemplate(Template template, Package package)
at Tridion.ContentManager.Templating.Engine.InvokeTemplate(Package package, TemplateInvocation templateInvocation, Template template)
at Tridion.ContentManager.Templating.Compound.CompoundTemplateMediator.Transform(Engine engine, Template templateToTransform, Package package)
at Tridion.ContentManager.Templating.Engine.ExecuteTemplate(Template template, Package package)
at Tridion.ContentManager.Templating.Engine.InvokeTemplate(Package package, TemplateInvocation templateInvocation, Template template)
at Tridion.ContentManager.Templating.Engine.TransformItem(Template template, IdentifiableObject itemToRender)
at Tridion.ContentManager.Templating.TemplatingRenderer.Render(ResolvedItem resolvedItem, PublishInstruction instruction, PublicationTarget target, RenderedItem renderedItem, RenderContext renderContext)