Fehler bei der WSUS-Synchronisierung mit SoapException

In diesem Artikel erfahren Sie, wie Sie ein Problem beheben, bei dem die WSUS-Synchronisierung (Windows Server Update Services) aufgrund eines außer Betrieb gesetzten Endpunkts fehlschlägt.

Ursprüngliche Produktversion: WSUS : Alle Versionen, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
Ursprüngliche KB-Nummer: 4482416

Symptome

Bei der WSUS-Synchronisierung tritt ein Fehler auf, und Sie erhalten die folgende Fehlermeldung:

SoapException: Fehler aufgetreten
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
unter Microsoft.UpdateServices.ServerSyncWebServices.ServerSync.ServerSyncProxy.GetUpdateData(Cookie cookie, UpdateIdentity[] updateIds)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.WebserviceGetUpdateData(UpdateIdentity[] updateIds, List'1 allMetadata, List'1 allFileUrls, Boolean isForConfig)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.GetUpdateDataInChunksAndImport(List'1 neededUpdates, List'1 allMetadata, List'1 allFileUrls, Boolean isConfigData)
bei Microsoft.UpdateServices.ServerSync.Cat

Darüber hinaus wird eine Fehlermeldung, die der folgenden ähnelt, in der WSUS-Protokolldatei (%ProgramFiles%\Update Services\LogFiles\SoftwareDistribution.log) auf dem WSUS-Server protokolliert:

<Date> <Time> Error WsusService.25 SoapUtilities.LogException USS ThrowException: Actor = https://fe2.update.microsoft.com/v6/ServerSyncWebService/ServerSyncWebService.asmx, Method = "http://www.microsoft.com/SoftwareDistribution/GetUpdateData", ID=<ID>, ErrorCode=InternalServerError, Message=  
   at Microsoft.UpdateServices.Internal.SoapUtilities.LogException(SoapException e)
   at Microsoft.UpdateServices.Internal.WebServiceCommunicationHelper. ProcessWebServiceProxyException(SoapHttpClientProtocol& webServiceObject, Exception exceptionInfo)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.WebserviceGetUpdateData(UpdateIdentity[] updateIds, List\1 allMetadata, List\1 allFileUrls, List\`1& updatesWithSecureFileData, Boolean isForConfig)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.GetUpdateDataInChunksAndImport(List\1 neededUpdates, List\1 allMetadata, List\1 allFileUrls, Boolean isConfigData)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.GetAndSaveUpdateMetadata(List\1 updates)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)  
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.CatalogSyncThreadProcess()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
<Date> <Time> Error WsusService.25 SoapUtilities.LogException USS ThrowException: Actor = https://fe2.update.microsoft.com/v6/ServerSyncWebService/ServerSyncWebService.asmx, Method = "http://www.microsoft.com/SoftwareDistribution/GetUpdateData", ID=\<ID>, ErrorCode=InternalServerError, Message=  
   at Microsoft.UpdateServices.Internal.SoapUtilities.LogException(SoapException e)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.CatalogSyncThreadProcess()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Ursache

Dieses Problem tritt auf, wenn die WSUS-Server für die Verwendung des alten Synchronisierungsendpunkts https://fe2.update.microsoft.com/v6konfiguriert sind. Dieser Endpunkt wurde vollständig außer Betrieb genommen und ist nach dem 8. Juli 2019 nicht mehr erreichbar.

Lösung

Um das Problem zu beheben, ändern Sie den Synchronisierungsendpunkt in der WSUS-Konfiguration in https://sws.update.microsoft.com.

Führen Sie dazu die folgenden Schritte auf dem obersten WSUS-Server aus, der eine direkte Verbindung mit Microsoft Update herstellt, z. B. auf dem WSUS-Stammserver in einer WSUS-Hierarchie:

  1. Schließen Sie alle WSUS-Konsolen.

  2. Führen Sie an einer PowerShell-Eingabeaufforderung mit erhöhten Rechten die folgenden PowerShell-Skripts aus.

    Hinweis

    Führen Sie die Skripts nicht auf einem WSUS-Server aus, der nicht der oberste Server ist. Wenn der Server nicht mit dem Internet verbunden ist, schlägt die Synchronisierung möglicherweise fehl.

    Für WSUS Version 3.x:

    [void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
    $server = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer()
    $config = $server.GetConfiguration()
    # Check current settings before you change them
    $config.MUUrl
    $config.RedirectorChangeNumber
    # Update the settings if MUUrl is https://fe2.update.microsoft.com/v6
    $config.MUUrl = "https://sws.update.microsoft.com"
    $config.RedirectorChangeNumber = 4002
    $config.Save();
    iisreset
    Restart-Service *Wsus* -v
    

    WSUS-Server, auf denen Windows Server 2008 (ohne das neueste Update) oder frühere Versionen ausgeführt wird, verwenden möglicherweise die https://update.microsoft.com/v6 Synchronisierungsendpunkte oder https://www.update.microsoft.com . Da diese Versionen von Windows die SHA256-Zertifikatauthentifizierung nicht unterstützen, verwenden Sie die folgenden Einstellungen in den PowerShell-Skripts:

    $config.MUUrl = " https://sws1.update.microsoft.com"
    $config.RedirectorChangeNumber = 3011
    

    Für WSUS unter Windows Server 2012 und höheren Versionen:

    $server = Get-WsusServer
    $config = $server.GetConfiguration()
    # Check current settings before you change them 
    $config.MUUrl
    $config.RedirectorChangeNumber
    # Update the settings if MUUrl is https://fe2.update.microsoft.com/v6
    $config.MUUrl = "https://sws.update.microsoft.com"
    $config.RedirectorChangeNumber = 4002
    $config.Save()
    iisreset
    Restart-Service *Wsus* -v
    
  3. Überprüfen Sie, ob die WSUS-Synchronisierung erfolgreich ist.

Weitere Informationen

Weitere Informationen zum Ausführen von PowerShell-Skripts finden Sie unter Was ist PowerShell?.