Last Updated on 2017-03-24.
[:en]
As I mentioned in a few posts, WSUS / Windows Update can be dangerous sometimes.
Windows Update KB4013429 seems to create issues with Exchange Server. If you install it and have Exchange AntiSpam features (content filter) installed, it might happen that the Exchange Transport Service is not able to run afterwards. It works for about a minute and then crashes.
It affects Exchange Server 2010, 2013 and 2016.
Workaround
So far I found 2 ways to get it up and running:
Option 1: Disable content filters
Open your Exchange Management Shell and execute:
$env:ExchangeInstallPath\Scripts\Uninstall-AntiSpamAgents.ps1
If you have another mail gateway (e.g. spam filter solution) in front of Exchange, so you are indepent of Exchange’s own content filters, this should be the best solution at the moment.
Otherwise choose option 2 below.
Option 2: Uninstall KB4013429
Uninstall this Windows Update from your system and the Transport Service should be able to run after a reboot.
(Update 2017-07-22) Option 3, recommended: Run regsvr32 cmdlet
This command solved the issue for me:
regsvr32 "c:\Program Files\Microsoft\Exchange Server\V14\Bin\ExSMime.dll"
Adjust “V14/V15/V16” etc. to your Exchange server’s version.
Event Log messages in detail
Source MSExchangeTransport, Event ID 7001
Error message (German):
Der Dienst wird beendet. Begründung: Microsoft.Exchange.Transport.TransportComponentLoadFailedException: Loading of component ‘AgentComponent’ failed. —> Microsoft.Exchange.Transport.TransportComponentLoadFailedException: Fehler beim Laden der Agent-Komponente. —> Microsoft.Exchange.Data.ExchangeConfigurationException: Fehler beim Erstellen des Typs ‘Microsoft.Exchange.Transport.Agent.ContentFilter.ContentFilterAgentFactory’ aus Assembly ‘C:\Program Files\Microsoft\Exchange Server\V14\TransportRoles\agents\Hygiene\Microsoft.Exchange.Transport.Agent.Hygiene.dll’ aufgrund von Fehler ‘Ausnahme von HRESULT: 0xC0630005’. —> Microsoft.Exchange.Data.ExchangeConfigurationException: Ausnahme von HRESULT: 0xC0630005 —> System.Runtime.InteropServices.COMException (0xC0630005): Ausnahme von HRESULT: 0xC0630005
bei Microsoft.Exchange.Data.Transport.Interop.IComInvoke.ComAsyncInvoke(IProxyCallback callback)
bei Microsoft.Exchange.Data.Transport.Interop.ComProxy.Invoke(AsyncCompletionCallback asyncComplete, ComArguments propertyBag, MailItem mailItem)
bei Microsoft.Exchange.Transport.Agent.ContentFilter.Util.InvokeExLapi(ComProxy comProxy, AsyncCompletionCallback callback, ComArguments comArguments, MailItem mailItem, Byte[] requestType)
bei Microsoft.Exchange.Transport.Agent.ContentFilter.ContentFilterAgentFactory.InitializeFilter()
— Ende der internen Ausnahmestapelüberwachung —
bei Microsoft.Exchange.Transport.Agent.ContentFilter.ContentFilterAgentFactory.InitializeFilter()
bei Microsoft.Exchange.Transport.Agent.ContentFilter.ContentFilterAgentFactory.Configure(Boolean onStartup)
bei Microsoft.Exchange.Transport.Agent.ContentFilter.ContentFilterAgentFactory..ctor()
— Ende der internen Ausnahmestapelüberwachung —
bei Microsoft.Exchange.Data.Transport.Internal.MExRuntime.FactoryTable.CreateAgentFactory(AgentInfo agentInfo)
bei Microsoft.Exchange.Data.Transport.Internal.MExRuntime.FactoryTable..ctor(IEnumerable agents)
bei Microsoft.Exchange.Data.Transport.Internal.MExRuntime.RuntimeSettings..ctor(MExConfiguration config, String agentGroup)
bei Microsoft.Exchange.Data.Transport.Internal.MExRuntime.MExRuntime.Initialize(String configFile, String agentGroup, Boolean isBridgeHead, String installPath)
bei Microsoft.Exchange.Transport.Extensibility.AgentComponent.Load()
— Ende der internen Ausnahmestapelüberwachung —
bei Microsoft.Exchange.Transport.Extensibility.AgentComponent.Load()
bei Microsoft.Exchange.Transport.SequentialTransportComponent.<>c__DisplayClass2.<Load>b__0()
bei Microsoft.Exchange.Data.Directory.ADNotificationAdapter.RunADOperation(ADOperation adOperation, Int32 retryCount)
bei Microsoft.Exchange.Data.Directory.ADNotificationAdapter.TryRunADOperation(ADOperation adOperation, Int32 retryCount)
bei Microsoft.Exchange.Transport.SequentialTransportComponent.Load()
— Ende der internen Ausnahmestapelüberwachung —
bei Microsoft.Exchange.Transport.SequentialTransportComponent.Load()
bei Microsoft.Exchange.Transport.Components.Activate()
[:]