Tuesday, April 3, 2018

SCOM SDK service crashes with exeption: The service ertificate is not provided. specify a service certificate in ServiceCredentials. at System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateServerX509TokenProvider()

We see the following events on the Operations Manager logs on the problematic SCOM  management server.



Log Name:      Operations   Manager
Source:          OpsMgr SDK Service
Event ID:      26380
Description:
The System Center Data Access service failed due to   an unhandled exception. 
The service will attempt to restart.
Exception:

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.SslStreamSecurityBindingElement.BuildServerStreamUpgradeProvider(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.SecurityChannelListener`1.InitializeListener(ChannelBuilder   channelBuilder)
   at   System.ServiceModel.Channels.TransportSecurityBindingElement.BuildChannelListenerCore[TChannel](BindingContext   context)
   at   System.ServiceModel.Channels.SecurityBindingElement.BuildChannelListener[TChannel](BindingContext   context)
   at   System.ServiceModel.Channels.TransactionFlowBindingElement.BuildChannelListener[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   Microsoft.EnterpriseManagement.Common.BackCompat.BackcompatChannel.InitializeRunner()
   at   System.Threading.ExecutionContext.Run(ExecutionContext executionContext,   ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at   System.Threading.ExecutionContext.Run(ExecutionContext executionContext,   ContextCallback callback, Object state)
   at   System.Threading.ThreadHelper.ThreadStart()




Resolution :
===========
The   SDK service starts and It remains in started mode for some time and then it   stops automatically and throws following errors in the Operations Manager   event logs.


Log Name:      Operations   Manager
Source:          OpsMgr SDK Service
Task Category: None
Level:           Information
Description:
The System Center Data Access service failed to   create a self-signed certificate. Clients will not be able to connect over   NTLM/SSL.
 So, please assist to fix this issue as soon   as possible.




Resolution :
===========
  
      
  • Copy the Microsoft.MOM.Sdk.ServiceHost.exe.config file from another management  server where the SDK service is working fine and replace it on the problematic management server.
  • Start the SDK service.