Submit a ticketCall us

WebinarWebinar: A checklist for planning your Network Performance Monitor (NPM) upgrade

Are you ready for your next upgrade? To help you plan smoothly, join this webcast to learn more about, SolarWinds® Orion® Installer, SolarWinds Upgrade Advisor, Upgrades Guides, Training Videos, and other resources available. We’ll share key upgrade planning considerations, lessons learned from customers with practical advice from SolarWinds Product Experts. We’ll also give practical tips to identify the estimated time needed and resources, how to prepare the business and IT staff for changes, ways to plan for required system changes, and more.

Register now.

Home > Success Center > User Device Tracker (UDT) > UDT - Knowledgebase Articles > 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: 982 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.
Last modified

Tags

Classifications

Public