1

We are using Web 8.5 and begun development on an ECL provider for AEM. After adding mount points to the ECL config file, error seen is:

2020-03-05 09:46:06,348 [100] DEBUG UI.DataExtenders - Process request for command 'GetList' id='ecl:4-aem-root-mp-mountpoint' 2020-03-05 09:46:06,410 [100] ERROR UI.Model - System.Exception: Unable to get the list of items ---> System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Failed initializing the External Content Library with id aem.

Server stack trace: at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) at
System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at
System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at
System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at 
System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: at 
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at
Tridion.ExternalContentLibrary.Service.Client.ISessionAwareEclService.GetList(String parentItemUri, Int32 pageIndex, EclItemTypes itemTypes, IEnumerable 1 basedOnSchema) at
Tridion.ExternalContentLibrary.UI.Model.Services.GeneralImpl.GetList(String id, Int32 pageIndex, Filter filter, Int32 columns) --- End of inner exception stack trace --- at
Tridion.ExternalContentLibrary.UI.Model.Services.GeneralImpl.GetList(String id, Int32 pageIndex, Filter filter, Int32 columns) at 
Tridion.ExternalContentLibrary.UI.Model.Services.General.GetList(String id, Int32 pageIndex, Filter filter, Int32 columns) at SyncInvokeGetList(Object , Object[] , Object[] ) at
System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at
Tridion.Web.UI.Core.Extensibility.DataExtenderOperationInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at
System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at
System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) 

2020-03-05 09:46:30,051 [126] DEBUG UI.DataExtenders - Process response for command 'GetListActivityInstances' id='' ... System.Exception: Unable to get the list of items ---> System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Unable to connect to the remote server

Other details: - The AEM server is within the corporate network, so although there is a proxy this should not be an issue.

If someone would like to see the ECL code, it can be sent directly. Any comments would be welcome.

#

4/20/2020: this is what was captured in the tcm trace:

Server stack trace: 
   at Tridion.ExternalContentLibrary.AddInPipeline.V2.AddInSideAdapters.ContentLibraryViewToContractAddInAdapter.Initialize(String mountPointId, String configurationXmlElement, IHostServicesContract hostServices)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at Tridion.ExternalContentLibrary.AddInPipeline.V2.HostSideAdapters.ContentLibraryContractToViewHostAdapter.Initialize(String mountPointId, String configurationXmlElement, IHostServices hostServices)
   at Tridion.ExternalContentLibrary.DomainModel.MountPoint.GetContentLibraryForMountPoint(MountPointConfiguration config)
08:55:41.064 <16284> TcmServiceHost: MountPoint.GetContentLibraryForMountPoint() exit. Duration: 477 ms. Returned value: ''
08:55:41.065 <16284> Error: 'Object reference not set to an instance of an object.', errorCode: 0, category: General, component: Tridion.ExternalContentLibrary.DomainModel

Server stack trace: 
   at Tridion.ExternalContentLibrary.AddInPipeline.V2.AddInSideAdapters.ContentLibraryViewToContractAddInAdapter.Initialize(String mountPointId, String configurationXmlElement, IHostServicesContract hostServices)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at Tridion.ExternalContentLibrary.AddInPipeline.V2.HostSideAdapters.ContentLibraryContractToViewHostAdapter.Initialize(String mountPointId, String configurationXmlElement, IHostServices hostServices)
   at Tridion.ExternalContentLibrary.DomainModel.MountPoint.GetContentLibraryForMountPoint(MountPointConfiguration config)
   at Tridion.ExternalContentLibrary.DomainModel.MountPoint.<>c.<GetConfiguredMediaManagers>b__12_0(MountPointConfiguration mountPointConfiguration)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Tridion.Logging.Tracer.ConvertEnumerableToString(IEnumerable param, Int32 resultLimit)
   at Tridion.Logging.Tracer.ConvertParameterToString(Object param)
   at Tridion.Logging.TracerAttribute.OnExit(MethodExecutionArgs args)
   at Tridion.ExternalContentLibrary.DomainModel.MountPoint.GetConfiguredMediaManagers()
   at Tridion.ExternalContentLibrary.DomainModel.MountPoint.<>c.<GetDisplayTypes>b__13_0(String s)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Tridion.ExternalContentLibrary.DomainModel.MountPoint.GetDisplayTypes()
08:55:41.065 <16284> TcmServiceHost: MountPoint.GetDisplayTypes() exit. Duration: 479 ms. Returned value: ''
08:55:41.065 <16284> Error: 'Object reference not set to an instance of an object.', errorCode: 0, category: General, component: Tridion.ExternalContentLibrary.Service
#

Retest on 04/21/2020 after review of variables for null refences, this is what the tcm trace log contained:

08:36:59.819 <32> TcmServiceHost: Provider.InstantiateInAppDomain(aem: AEMAssets) entry.(in : line 24) 08:36:59.829 <3300> Error: 'Object reference not set to an instance of an object.', errorCode: 0, category: General, component: Tridion.ExternalContentLibrary.DomainModel

Server stack trace: at Tridion.ExternalContentLibrary.AddInPipeline.V2.AddInSideAdapters.ContentLibraryViewToContractAddInAdapter.Initialize(String mountPointId, String configurationXmlElement, IHostServicesContract hostServices) at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: at Tridion.ExternalContentLibrary.AddInPipeline.V2.HostSideAdapters.ContentLibraryContractToViewHostAdapter.Initialize(String mountPointId, String configurationXmlElement, IHostServices hostServices) at Tridion.ExternalContentLibrary.DomainModel.MountPoint.GetContentLibraryForMountPoint(MountPointConfiguration config) 08:36:59.829 <3300> TcmServiceHost: MountPoint.GetContentLibraryForMountPoint() exit. Duration: 240 ms. Returned value: '' 08:36:59.830 <3300> Error: 'Object reference not set to an instance of an object.', errorCode: 0, category: General, component: Tridion.ExternalContentLibrary.DomainModel

...

08:37:10.874 <3300> TcmServiceHost: ExternalContentLibraryConfiguration.get_Theme() exit. Duration: 0 ms. Returned value: '' 08:37:10.874 <3300> TcmServiceHost: HostServices..ctor() exit. Duration: 0 ms. Returned value: '' 08:37:10.950 <4008> TcmPublisher: TransportEngine.GetDeploymentFeedback() entry.(in : line 162) 08:37:10.983 <3300> Error: 'Object reference not set to an instance of an object.', errorCode: 0, category: General, component: Tridion.ExternalContentLibrary.DomainModel

9
  • You say "when debugging in VS, we've noticed that XXX". Please post what XXX is :). Also, see the following, although somewhat dated, it has valuable information and also you have the source code for a working ecl provider which might help you in troubleshooting. docs.sdl.com/LiveContent/content/en-US/SDL%20Web-v5/…
    – Atila Sos
    Apr 10, 2020 at 21:58
  • Sorry about that... We initially had the issue with Symbols missing after 'attached to the process' where the process was the Tcm Service Host, but got past that and now show Symbols loaded for our .dll. Ultimately, we are still getting notified in the UI about the "unable to get list of items...",
    – Kira
    Apr 13, 2020 at 18:00
  • Also thank you, watched that entire video on the docs.sdl site. We matched it and can't see what else could be missing.
    – Kira
    Apr 13, 2020 at 18:01
  • Welcome, Kira. Have you been able to get a basic "stubbed out" ECL setup working where get lists returns some minimum or even fake data? I understand the hesitancy to share the code, but narrowing down the issue to a few specific lines after confirming installation, setup, and configuration could help people answer pinpoint the issue (and others who follow your post later!). Cheers! Apr 16, 2020 at 18:19
  • we were able to create the stub folder/stub schema and mount point was created in every publication fine, but then we introduced the .dll with the iContentLibrary implementation - at that point we starting seeing errors, which are the errors shown from the traces/logs above.
    – Kira
    Apr 17, 2020 at 18:57

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.