Home > Success Center > User Device Tracker (UDT) > UDT plugin error: The service certificate is not provided

UDT plugin error: The service certificate is not provided

Created by Matthew Lamb, last modified by MindTouch on Jun 23, 2016

Views: 841 Votes: 1 Revisions: 3

Overview

This article describes the resolution for an issue where the UDT plugin fails to load due to the following error in the UDT.BusinessLayer.log:

 

2016-03-09 14:46:17,020 [Main] FATAL   - Unhandled Exception caught in plugin startup.                                     [SolarWinds.UDT.BusinessLayer.UDTBusinessLayerPlugin]
System.InvalidOperationException: The service certificate is not provided. Specify a service certificate in ServiceCredentials. 
   at System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateServerX509TokenProvider()
   at System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateLocalSecurityTokenProvider(RecipientServiceModelSecurityTokenRequirement recipientRequirement)
   at System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateSecurityTokenProvider(SecurityTokenRequirement requirement)
   at System.ServiceModel.Channels.SslStreamSecurityUpgradeProvider.CreateServerProvider(SslStreamSecurityBindingElement bindingElement, BindingContext context)
   at System.ServiceModel.Channels.ConnectionOrientedTransportChannelListener..ctor(ConnectionOrientedTransportBindingElement bindingElement, BindingContext context)
   at System.ServiceModel.Channels.TcpChannelListener..ctor(TcpTransportBindingElement bindingElement, BindingContext context)
   at System.ServiceModel.Channels.TcpTransportBindingElement.BuildChannelListener[TChannel](BindingContext context)
   at System.ServiceModel.Channels.SessionChannelDemuxer`2..ctor(BindingContext context, TimeSpan peekTimeout, Int32 maxPendingSessions)
   at System.ServiceModel.Channels.ChannelDemuxer.CreateTypedDemuxer(Type channelType, BindingContext context)
   at System.ServiceModel.Channels.ChannelDemuxer.GetTypedDemuxer(Type channelType, BindingContext context)
   at System.ServiceModel.Channels.ChannelDemuxer.BuildChannelListener[TChannel](BindingContext context, ChannelDemuxerFilter filter)
   at System.ServiceModel.Channels.ChannelBuilder.BuildChannelListener[TChannel]()
   at System.ServiceModel.Channels.ChannelBuilder.BuildChannelListener[TChannel](MessageFilter filter, Int32 priority)
   at System.ServiceModel.Channels.SecurityChannelListener`1.InitializeListener(ChannelBuilder channelBuilder)
   at System.ServiceModel.Channels.TransportSecurityBindingElement.BuildChannelListenerCore[TChannel](BindingContext context)
   at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters)
   at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener& result, Boolean supportContextSession)
   at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener& result)
   at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
   at System.ServiceModel.ServiceHostBase.InitializeRuntime()
   at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at SolarWinds.UDT.BusinessLayer.UDTBusinessLayerPlugin.OpenBusinessLayerService()
   at SolarWinds.UDT.BusinessLayer.UDTBusinessLayerPlugin.Start()

Environment

  • UDT 3 and later
  • All pollers

Cause 

The error occurs because the businesslayer cannot validate the SolarWinds-Orion certificate in the server. The reason for this is due to the UDT plugin loading as its own process and as a 64bit process. For UDT, this is currently not supported and results in an error state. SolarWinds recommends to leave the default 32bit to ensure there are no issues.

Resolution

  1. Stop all Orion Services using the Orion Service Manager.
  2. Go to the install directory at Program Files (x86)\Solarwinds\Orion\UDT.
  3. Locate the file SolarWinds.UDT.BusinessLayer.dll.config and open in any text editor.
  4. Locate the line:
    <SolarWinds.BusinessLayerHost LoadPlugins="true" SeparateProcess="true" Support64="true" />
  5. Change it to this:
    <SolarWinds.BusinessLayerHost LoadPlugins="true" SeparateProcess="true" />
  6. Save the file.
  7. Restart all Orion Services using the Orion Service Manager.
You must to post a comment.
Last modified
10:04, 23 Jun 2016

Tags

Classifications

Public