Fehler bei der WSUS-Synchronisierung mit SoapException

Dieser Artikel hilft Ihnen, ein Problem zu beheben, bei dem Windows Server Update Services (WSUS)-Synchronisierung aufgrund eines außer Betrieb genommenen Endpunkts fehlschlägt.

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

Problembeschreibung

Bei der WSUS-Synchronisierung tritt ein Fehler auf, und die folgende Fehlermeldung wird angezeigt:

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)
at 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 ( ) auf %ProgramFiles%\Update Services\LogFiles\SoftwareDistribution.log 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 konfiguriert sind, https://fe2.update.microsoft.com/v6 . Dieser Endpunkt wurde vollständig außer Betrieb gesetzt 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 hierzu die folgenden Schritte auf dem obersten WSUS-Server aus, der eine direkte Verbindung mit Microsoft Update herstellt, z. B. 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, kann die Synchronisierung fehlschlagen.

    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
    

    Auf WSUS-Servern, auf denen Windows Server 2008 (ohne das neueste Update) oder frühere Versionen ausgeführt werden, werden möglicherweise die Endpunkte oder die https://update.microsoft.com/v6 https://www.update.microsoft.com Synchronisierung verwendet. Da diese Versionen von Windows 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 auf Windows Server 2012 und höher:

    $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. Stellen Sie sicher, dass die WSUS-Synchronisierung erfolgreich ist.

Weitere Informationen

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