Issue
Topology报错信息:SharePoint Web Services Round Robin Service Load Balancer Event: EndpointFailure。
Affected Endpoint 主要是两种类型的"SharePoint Service":MetadataWebService.svc和ProfileService.svc,如下图所示:
Troubleshooting
这是在SharePoint Farm中常见的错误,一般是多层SharePoint 拓扑结构中,为了Load-Balance,一些Service Application可在不同的Web Front-End Servers或APP Servers上创建多次。当内部的Topology Service将请求轮询到EndPoints时,由于某个Service Application EndPoint不正确或者被删(可能是Service Application配置失败、已迁移等),或者当前运行的账户(Application Pool Identity)权限问题不足,都会导致SharePoint解析EndPoints失败。
注:每个Service Application必须暴露出一个Service Application EndPoint,并且这个EndPoint只创建在启动了与该Service Application相关联的"SharePoint Service"的服务器上(即在SharePoint管理中心启动了"SharePoint Service",那么SharePoint Web Service IIS Web Site会创建IIS虚拟应用程序,这个虚拟应用程序将包含Service Application EndPoint)。
当Consumers(WebApplication)通过Proxy请求Service Application(Service)时,内部的Topology Service会将请求传输到它正确的位置(Service Application EndPoint)。
Resolution
我查看了SharePoint的ULS日志,对于MetadataService.svc相关的拓扑错误,发现没有和用户权限相关的报错异常,发现都是超时。所以我的解决方案是:在启动了Metadata Service的服务器上,进入SharePoint 管理中心à系统设置à管理服务器上的服务à重启下Metadata Service,如下图所示:
同理为了解决Profile Service Application EndPoint解析错误,也重启下User Profile Service试试看。
对于有些情况下拓扑报错,如SearchService.svc EndPoint解析错误,解决方案也是相同的:
- 进入SharePoint后台管理中心-à管理服务应用程序-àSearch Service Application
- 检查Search topology 区域下Query Component(查询功能)是否启用中
- 若查询功能不启用,那么在管理服务器上服务àStop Search Query and Site Settings service ,否则重启Search Query and Site Settings service 服务。
Summary
在SharePoint 多层拓扑结构中,会有很多原因会引发拓扑异常,我的解决方案也并不一定能完全解决问题,不同的异常还的结合对应的环境才能分析。