Mcebuddy 引擎重启后未启动

最近在 Windows Server 2016 上安裝,若重新啟動伺服器,服務會無法啟動;手動停止再啟動 mcebudy 可暫時解決,直到下次重開機。

有什麼建議可永久排除?不確定為何它會去尋找網域控制站,因為它本身就跑在 DC 上。

錯誤 2018-10-20 上午 04:41
MCEBuddy 服務啟動失敗。錯誤:System.ServiceModel.Security.SecurityNegotiationException: 呼叫 SSPI 失敗,請參閱內部例外狀況。—> System.Security.Authentication.AuthenticationException: 呼叫 SSPI 失敗,請參閱內部例外狀況。—> System.ComponentModel.Win32Exception: 系統無法聯絡網域控制站以處理驗證要求,請稍後再試
— 內部例外狀況堆疊追蹤結尾 —
at System.Net.Security.NegoState.StartSendAuthResetSignal(LazyAsyncResult lazyResult, Byte message, Exception exception)
at System.Net.Security.NegoState.StartSendBlob(Byte message, LazyAsyncResult lazyResult)
at System.Net.Security.NegoState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.NegotiateStream.AuthenticateAsClient(NetworkCredential credential, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel)
at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream stream, SecurityMessageProperty& remoteSecurity)
— 內部例外狀況堆疊追蹤結尾 —

伺服器堆疊追蹤:
at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream stream, SecurityMessageProperty& remoteSecurity)
at System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgrade(Stream stream)
at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade(StreamUpgradeInitiator upgradeInitiator, IConnection& connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
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)

例外再次擲回於 [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at MCEBuddy.Globals.ICore.Start()
at MCEBuddy.Service.ServiceModule.OnStart(String args)

看起来 MCEBuddy 正在尝试与您在设置中配置的网络驱动器进行身份验证,但 Windows 在执行此操作时抛出了异常。

这通常发生在网络服务子系统尚未启动时,因此 Windows 会报错。当您稍后手动执行时,该子系统已经启动,因此就能正常工作。

简单的解决方法是:在 Windows 中打开服务管理器,将 MCEBuddy 设置为“延迟启动”服务。这样,系统启动时会先给网络子系统留出启动时间,随后 Windows 再启动 MCEBuddy,从而解决您的问题。

沒有網路磁碟機,mcebuddy 和驅動程式都在伺服器上。不過,將它設為延遲啟動確實解決了問題。

从今天发布的2.4.9版本开始,MCEBuddy服务将默认设置为延迟启动,因为它依赖于多个Windows服务,延迟启动更为稳妥。

感谢你的反馈。