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.
No helpful log events are seen when browsing the Windows event logs, a Fiddler trace of the CME GUI, or doing a CM trace while reproducing issue. Process Monitor was used to check for ECL related errors, none were found.
We've raised a ticket with SDL Support, and gone through some debugging sessions, but do not have any insight as to what the problem is. SDL Support have said that there does not appear to be a user permissions issue.
When debugging the ECL provider in Visual Studio, we've noticed that XXX. So we are not sure if the the provider was actually deployed correctly.
We've seen several blog posts and Tridion Stackexchange posts which discuss what seems to be similar or the same error message. Not sure where the problem is though.
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