Problem
Event-ID: 8313 – SharePoint Foundation – Topologie – Fehler beim Versuch, eine Dienstanwendung aufzurufen: EndpointFailure
Fehler beim Versuch, eine Dienstanwendung aufzurufen: EndpointFailure.
. . .
Event-ID: 8313 – SharePoint Foundation – Topologie – A failure was reported when trying to invoke a service application: EndpointFailure
A failure was reported when trying to invoke a service application: EndpointFailure
. . .
Details
Beschreibung
Es werden Einträge mit der Event-ID: 8313 in das ULS Log geschrieben.
Die Event-ID: 8313 findet man auch in der Ereignisanzeige (Event Viewer) mindestens einmal täglich (evtl. auf unterschiedlichen SharePoint Servern der Farm).
Es kann auch sein, dass die Event-ID: 8313 auch genau dann im ULS-Log und im Event Viewer generiert wird, wenn gewisse Vorgänge im SharePoint ausgeführt und mit Fehlermeldung beendet werden. Z.B. die Synchronisierung einer Aufgabenliste mit Outlook.
Ist-Zustand
SharePoint Umgebung
- SharePoint 2013 SP1 (On-Premises, 3 Tier Cluster)
- MS SQL-Server 2008 R2 Failover-Cluster
- Backup: AvePoint DocAve 6 SP5
- OWA / WAC
- Workflow-Manager
- BI
- Monitoring
Der Server, der in den ULS auftaucht (hier „old-sp-server„) wurde vor längerer Zeit aus der Farm entfernt.
ULS Log
In den ULS Logs findet man folgende Einträge:
Product: SharePoint Foundation
Process | w3wp.exe |
---|---|
Product | SharePoint Foundation |
Category | Topology |
EventID | 8313 |
Level | Critical |
Message | A failure was reported when trying to invoke a service application: EndpointFailure Process Name: w3wp Process ID: <ID> AppDomain Name: /LM/W3SVC/2/ROOT/c0872fbc-14-131072520302397589 AppDomain ID: 15 Service Application Uri: urn:schemas-microsoft-com:sharepoint:service:fea20cf0#authority=urn:uuid:4a99a796&authority=https://old-sp-server:32844/Topology/topology.svc Active Endpoints: 3 Failed Endpoints:1 Affected Endpoint: http://sp-server:32843/fea20cf0/ProfileService.svc |
Name | Request (POST:https://<SP-Domain>:443/<SiteCollectionWithTaskList>/_layouts/15/ExchangeSyncSettings.aspx?IsDlg=1) |
Component | |
Result | |
Error |
Product: SharePoint Portal Server
Process | w3wp.exe |
---|---|
Product | SharePoint Portal Server |
Category | User Profiles |
EventID | acruz |
Level | High |
Message | Exception occured while connecting to WCF endpoint: System.ServiceModel.Security.SecurityAccessDeniedException: Der Zugriff wurde verweigert. Server stack trace: bei System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) bei System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) bei System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) bei System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) bei System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) bei Microsoft.Office.Server.UserProfiles.IProfilePropertyService.GetProfileProperties() bei Microsoft.Office.Server.UserProfiles.ProfilePropertyServiceClient.<>c__DisplayClass1.<GetProfileProperties>b__0(IProfilePropertyService channel) bei Microsoft.Office.Server.UserProfiles.MossClientBase`1.ExecuteOnChannel(String operationName, CodeBlock codeBlock) |
Name | Request (POST:https://<SP-Domain>:443/<SiteCollectionWithTaskList>/_layouts/15/ExchangeSyncSettings.aspx?IsDlg=1) |
Component | |
Result | |
Error |
Product: SharePoint Portal Server
Process | w3wp.exe |
---|---|
Product | SharePoint Portal Server |
Category | User Profiles |
EventID | ajk4f |
Level | High |
Message | UserProfileProperty_WCFLogging::Begin ProfilePropertyServiceClient.ExecuteOnChannel threw Exception Microsoft.Office.Server.UserProfiles.UserProfileException: System.ServiceModel.Security.SecurityAccessDeniedException bei Microsoft.Office.Server.UserProfiles.MossClientBase`1.ExecuteOnChannel(String operationName, CodeBlock codeBlock) bei Microsoft.Office.Server.UserProfiles.ProfilePropertyServiceClient.ExecuteOnChannel(String operationName, CodeBlock codeBlock) |
Name | Request (POST:https://<SP-Domain>:443/<SiteCollectionWithTaskList>/_layouts/15/ExchangeSyncSettings.aspx?IsDlg=1) |
Component | |
Result | |
Error |
Product: SharePoint Portal Server
Process | w3wp.exe |
---|---|
Product | SharePoint Portal Server |
Category | User Profiles |
EventID | g11n |
Level | High |
Message | UserProfileApplicationProxy.InitializePropertyCache: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei Microsoft.Office.Server.Administration.UserProfileApplicationProxy.IsCompatibleDatabaseSchema(ProfilePropertyData propertyData) bei Microsoft.Office.Server.Administration.UserProfileApplicationProxy.RefreshProperties(Guid applicationID) bei Microsoft.Office.Server.Utilities.SPAsyncCache`2.GetValueNow(K key) bei Microsoft.Office.Server.Utilities.SPAsyncCache`2.GetValue(K key, Boolean asynchronous) bei Microsoft.Office.Server.Administration.UserProfileApplicationProxy.InitializePropertyCache() |
Name | Request (POST:https://<SP-Domain>:443/<SiteCollectionWithTaskList>/_layouts/15/ExchangeSyncSettings.aspx?IsDlg=1) |
Component | |
Result | |
Error |
Ereignisprotokoll
In der Windows Ereignisanzeige (Event Viewer) ist folgender Event Log Eintrag mit der Event-ID: 8313 vorhanden (eventuell nicht auf allen SharePoint-Servern der Farm gleichzeitig zu sehen):
Event-ID: 8313
Deutsches System
Protokoll(name) | Anwendung |
---|---|
Quelle | SharePoint Foundation |
Aufgabenkategorie | Topologie |
Ebene | Fehler |
Ereignis-ID | 8313 |
Details | Fehler beim Versuch, eine Dienstanwendung aufzurufen: EndpointFailure Prozessname: w3wp Prozess-ID: 9772 AppDomain-Name: /LM/W3SVC/2/ROOT/c0872fbc-10-131068430349594355 AppDomain-ID: 11 Dienstanwendungs-URI: urn:schemas-microsoft-com:sharepoint:service:fea20cf0#authority=urn:uuid:4a99a796&authority=https://old-sp-server:32844/Topology/topology.svc Aktive Endpunkte: 3 Fehlerhafte Endpunkte:1 Betroffene Endpunkte:http://sp-server:32843/fea20cf0/ProfileService.svc |
Event-ID: 8313
Englisches System
Protokoll(name) | Application |
---|---|
Quelle | SharePoint Foundation |
Aufgabenkategorie | Topology |
Ebene | Error |
Ereignis-ID | 8313 |
Details | A failure was reported when trying to invoke a service application: EndpointFailure Process Name: w3wp Process ID: 9772 AppDomain Name: /LM/W3SVC/2/ROOT/c0872fbc-10-131068430349594355 AppDomain ID: 11 Service Application Uri: urn:schemas-microsoft-com:sharepoint:service:fea20cf0#authority=urn:uuid:4a99a796&authority=https://old-sp-server:32844/Topology/topology.svc Active Endpoints: 3 Failed Endpoints:1 Affected Endpoint:http://sp-server:32843/fea20cf0/ProfileService.svc |
Fix
Dies wurde durchgeführt, hat aber zu keiner Lösung geführt
Der Server, der in den ULS auftaucht (hier „old-sp-server„) wurde vor längerer Zeit aus der Farm entfernt.
Benutzerprofildienst neu gestartet
Das Neustarten des Profildienstes auf allen SharePoint-Servern (ZA > Dienste auf dem Server) brachte keine Lösung.
URL im Browser nicht erreichbar
Der Aufruf der URL aus den Logs im Browser
http://sp-server:32843/fea20cf0/ProfileService.svc
Ergab:
Serverfehler in der Anwendung /fea20cf0.
——————————————————————————–Die Ressource kann nicht gefunden werden.
Beschreibung: HTTP 404. Die gesuchte Ressource oder eine ihrer Abhängigkeiten wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar. Überprüfen Sie folgende URL, und stellen Sie sicher, dass sie richtig geschrieben wurde.Angeforderter URL: /fea20cf0/ProfileService.svc
IIS-Site
Die IIS-Site mit der ID „fea20cf0-….“ unter Sites/SharePoint Web Services existiert und ist gestartet.
Der Anwendungspool (unter Grundeinstellungen) existiert und ist mit der Site verknüpft.
Information über TopologyService sammeln
ServiceApplication
Get-SPTopologyServiceApplication | fl *
|
ApplicationProxies
Get-SPTopologyServiceApplicationProxy | fl *
<# Ausgabe: BadListPeriod : 00:10:00 ExpireFailedEndPointsInterval : 00:10:00 TypeName : Anwendungserkennung und Proxy des Lastenausgleichsdiensts ApplicationProxies : {4a99a796} CanUpgrade : True IsBackwardsCompatible : True NeedsUpgradeIncludeChildren : False NeedsUpgrade : False UpgradeContext : Microsoft.SharePoint.Upgrade.SPUpgradeContext Name : DisplayName : Id : fe2d0e18 Status : Online Parent : SPFarm Name=<SPFarm Name> Version : 2877 Properties : {} Farm : SPFarm Name=<SPFarm Name> UpgradedPersistedProperties : {} #> |
(Get-SPTopologyServiceApplicationProxy).ApplicationProxies | fl *
|
Normalerweise muss sich „ServiceEndpointUri“ auf einem Server befinden, der noch in der SP-Farm vorhanden ist. Hier ist es nicht der Fall!
Außerdem müssen normalerweise die Eigenschaften von „ServiceEndpointUri“ gleich den Eigenschaften von „LoadBalancerUrl“ (aus Get-SPTopologyServiceApplication | fl *
) sein.
(Get-SPTopologyServiceApplicationProxy).ApplicationProxies.ServiceEndpointUri <# Ausgabe: |
Die Ausgabe der Zeilen:
Get-spserviceinstance | Select TypeName, Server | ft -auto
(Get-SPTopologyServiceApplication).ServiceInstances | ft -auto *
listet nur die vorhandenen sp-server auf – nicht den alten Server.
Endpoint-ListenUris der ServiceApp
$TopSA = Get-SPServiceApplication | where {$_.Name -like "Topology"} <# Ausgabe: LoadBalancerUrl : https://sp-server02:32844/Topology/topology.svc DisplayName : Anwendungserkennung und Anwendung des Lastenausgleichsdiensts TypeName : Anwendungserkennung und Anwendung des Lastenausgleichsdiensts ApplicationClassId : ece729db... ApplicationVersion : 1.0.0.0 Uri : https://sp-server02:32844/Topology/topology.svc IisVirtualDirectoryPath : SharePoint Web Services\Topology ApplicationPool : SPIisWebServiceApplicationPool Name=SharePoint Web Services System PermissionsLink : Microsoft.SharePoint.Administration.SPAdministrationLink Endpoints : {} DefaultEndpoint : SPIisWebServiceEndpoint Shared : False Comments : TermsOfServiceUri : Service : SPTopologyWebService ServiceInstances : {, , , } ServiceApplicationProxyGroup : SPServiceApplicationProxyGroup ManageLink : PropertiesLink : CanUpgrade : True IsBackwardsCompatible : True NeedsUpgradeIncludeChildren : False NeedsUpgrade : False UpgradeContext : Microsoft.SharePoint.Upgrade.SPUpgradeContext Name : Topology Id : 4a99a796 Status : Online Parent : SPTopologyWebService Version : 15476638 Properties : {} Farm : SPFarm Name=<SPFarm Name> UpgradedPersistedProperties : {} CanSelectForBackup : True DiskSizeRequired : 0 CanSelectForRestore : True CanRenameOnRestore : True #> $TopSA.Endpoints | fl * <# Ausgabe Uri : urn:schemas-microsoft-com:sharepoint:service:4a99a796#authority=urn:uuid:4a99a796&authority=https://sp-server02:32844/Topology/topology.svc ListenUris : {https://sp-server02:32844/Topology/topology.svc, https://sp-server01:32844/Topology/topology.svc, https://sp-server04:32844/Topology/topology.svc, https://sp-server03:32844/Topology/topology.svc} TypeName : Dienstanwendungsendpunkt Name : DisplayName : Id : 3e4466d7 Status : Online Parent : SPTopologyWebServiceApplication Name=Topology Version : 2889 Properties : {} Farm : SPFarm Name=<SPFarm Name> UpgradedPersistedProperties : {} CanSelectForBackup : False DiskSizeRequired : 0 CanSelectForRestore : False CanRenameOnRestore : False #> $(foreach ($pt in $TopSA.EndPoints) {$pt.ListenUris}) | ft * -auto
|
Unter ListenUris werden auch nur die vorhandenen sp-server aufgelistet – nicht der alte Server, der aus der Farm entfernt, aber immer noch als ServiceEndpointUri weiter oben aufgelistet wird.
CA > Manage Service Applications
In der Zentraladministration unter „Dienstanwendungen verwalten“ ist die Dienstanwendung „Anwendungserkennung und Anwendung des Lastenausgleichsdiensts“ bzw. „Application Discovery and Load Balancer Service Application“ ohne Anwendungsproxy aufgelistet.
So würde die normale, funktionierende Konfiguration aussehen:

In diesem Fall wird die Dienstanwendung ohne Proxy aufgelistet – nicht OK:

Der Proxy, der offensichtlich mit dem alten Server verknüpft ist, welcher schon längst aus der Farm entfernt wurde, wird am Ende der Dienstanwendungsliste aufgelistet, allerdings ohne einer Dienstanwendung.
Die ID entspricht der aus den ULS- und Event-Logs.

Timer-Job
Get-SpTimerJob job-spconnectedserviceapplication-addressesrefresh | fl * <# Ausgabe: Description : Synchronisiert Verbindungsinformationen für Remotedienstanwendungen. DisplayName : Aktualisierungsauftrag für Anwendungsadressen Service : SPTimerService Name=SPTimerV4 WebApplication : Server : LockType : Job Schedule : every 15 minutes between 0 and 0 Title : Aktualisierungsauftrag für Anwendungsadressen LastRunTime : 12.05.2016 14:15:00 Retry : False IsDisabled : False VerboseTracingEnabled : False HistoryEntries : {, , , ...} EnableBackup : False DiskSizeRequired : 0 CanSelectForBackup : False CanRenameOnRestore : False CanSelectForRestore : False Name : job-spconnectedserviceapplication-addressesrefresh TypeName : Microsoft.SharePoint.SPConnectedServiceApplicationAddressesRefreshJob Id : 5051c829-8723 Status : Online Parent : SPTimerService Name=SPTimerV4 Version : 2880 Properties : {} Farm : SPFarm Name=<SPFarm Name> UpgradedPersistedProperties : {} #>
Offensichtlich läuft der Timer-Job für die Aktualisierung der Endpoints ohne Probleme.
(Get-SpTimerJob job-spconnectedserviceapplication-addressesrefresh).HistoryEntries | Select -first 10 <# Ausgabe JobDefinitionId : 5051c829-8723 JobDefinitionTitle : Aktualisierungsauftrag für Anwendungsadressen WebApplicationId : 00000000-0000-0000-0000-000000000000 WebApplicationName : ServiceId : 40c02ff4-17c0 ServerId : a022786d-518c ServerName : sp-server02 Status : Succeeded StartTime : 12.05.2016 12:30:00 EndTime : 12.05.2016 12:30:00 DatabaseName : ErrorMessage : JobDefinitionId : 5051c829-8723 JobDefinitionTitle : Aktualisierungsauftrag für Anwendungsadressen WebApplicationId : 00000000-0000-0000-0000-000000000000 WebApplicationName : ServiceId : 40c02ff4-17c0 ServerId : a022786d-518c ServerName : sp-server02 Status : Succeeded StartTime : 12.05.2016 12:15:00 EndTime : 12.05.2016 12:15:01 DatabaseName : ErrorMessage : JobDefinitionId : 5051c829-8723 JobDefinitionTitle : Aktualisierungsauftrag für Anwendungsadressen WebApplicationId : 00000000-0000-0000-0000-000000000000 WebApplicationName : ServiceId : 40c02ff4-17c0 ServerId : a022786d-518c ServerName : sp-server02 Status : Succeeded StartTime : 12.05.2016 12:00:00 EndTime : 12.05.2016 12:00:00 DatabaseName : ErrorMessage : . . . #>
DB-Abfrage
In PowerShell die ID des ServiceApplicationProxy herausfinden und kopieren.
(Get-SPTopologyServiceApplicationProxy).ApplicationProxies.ID
|
Im SSMS wurde folgende Abfrage gestartet („SP_Configuration_DB
“ und „089ce7de
“ mit eigenen Werten ersetzen):
SELECT [Id] |
In der Spalte „Properties“ wird eine klickbare XML generiert.
Unsere Beispielausgabe sieht wie folgt aus (alle IDs wurden gekürzt):
<object type="Microsoft.SharePoint.SPTopologyWebServiceApplicationProxy, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce1"> |
Workaround
Achtung: Das direkte Editieren der SharePoint-Datenbanken wird von Microsoft nicht unterstützt! Nachfolgende Schritte führen Sie bitte nur in Testsystemen und nur auf eigene Gefahr durch! |
Im SSMS folgende Abfrage starten („SP_Configuration_DB
“ und „089ce7de
“ mit eigenen Werten ersetzen):
SELECT [Properties] FROM [Configuration_DB].[dbo].[Objects] WITH (NOLOCK) WHERE [Id] LIKE '089ce7de'
Der Inhalt der Spalte kann nach einem rechten Maustastenklick in die Zwischenablage kopiert, in einen Texteditor eingefügt und dort passend verändert werden (also den alten Server durch einen neuen ersetzen).
Mit folgenden SQL-Zeilen könnte man den Inhalt des Feldes verändern (<YOUR UPDATED COLUMN CONTENT>
muss durch den veränderten Inhalt aus dem Editor ersetzt werden)
Achtung: Das könnte die SharePoint-Farm zerstören! |
UPDATE [Objects] FROM [Configuration_DB].[dbo].[Objects] WITH (NOLOCK) WHERE Id = '089ce7de' SET Properties = '<YOUR UPDATED COLUMN CONTENT>'
Links
- sharepoint.stackexchange.com: Application Discovery Load Balancer Service EndpointFailure (topology.svc)
- networksteve.com: Topology.svc – Endpoints – Web Services High Availability
- blogs.msdn.microsoft.com: Increasing Service Application Redundancy
- social.technet.microsoft.com: Load Balancer Error Mesaage
- gai3kannan.wordpress.com: A failure was reported when trying to invoke a service application: EndpointFailure – Solution Step by Step
- blogs.msdn.microsoft.com: Troubleshooting App Management WCF Endpoint Failures
- blogs.msdn.microsoft.com: How I Learned to Stop Worrying and Love the SharePoint Topology Service
- sharepoint.stackexchange.com: Application Discovery Load Balancer Service EndpointFailure (topology.svc)
- blogs.msdn.microsoft.com: SharePoint 2010 Service Application Load Balancer
Der Beitrag Event-ID: 8313 – A failure was reported when trying to invoke a service application: EndpointFailure erschien zuerst auf Die SharePoint-Wiese.