Cause:
Incorrect entry in Profilepropertyservice.svc & ProfileDBCacheService.svc located at C:\Program Files\Microsoft Office Servers\15.0\WebServices\Profile
Solution:
Add in Local Security Policy for spadmin Allow log on locally, Impersonate a client after authentication, Log on as a batch jobs
Correct the entry as below:
->ProfileDBCacheService.svc
<%@ServiceHost
Language="c#"
Service="Microsoft.Office.Server.UserProfiles.ProfileDBCacheService, Microsoft.Office.Server.UserProfiles, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
Factory="Microsoft.Office.Server.UserProfiles.ProfileDBCacheServiceHostFactory, Microsoft.Office.Server.UserProfiles, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
->ProfilePropertyService.svc
<%@ServiceHost
Language="c#"
Service="Microsoft.Office.Server.UserProfiles.ProfilePropertyService, Microsoft.Office.Server.UserProfiles, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
Factory="Microsoft.Office.Server.UserProfiles.ProfilePropertyServiceHostFactory, Microsoft.Office.Server.UserProfiles, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>
The UPS page can now be accessed
Change startup type for FIM service to automatic
Noticed one time timer job created for profilesynchronizationsetupjob getting created again after deleting it
Ran below script to fix the timer service
$farm = Get-SPFarm $FarmTimers = $farm.TimerService.Instances
foreach ($FT in $FarmTimers){write-host "Server: "
$FT.Server.Name.ToString(); write-host "Status: " $FT.status;
write-host "Allow Service Jobs: " $FT.AllowServiceJobs; write-host
"Allow Content DB Jobs: " $FT.AllowContentDatabaseJobs;"`n"}
$disabledTimers = $farm.TimerService.Instances | where {$_.Status -ne
"Online"} if ($disabledTimers -ne $null) {foreach ($timer in
$disabledTimers) {Write-Host -ForegroundColor Red "Timer service
instance on server " $timer.Server.Name " is NOT Online. Current
status:" $timer.Status Write-Host -ForegroundColor Green "Attempting
to set the status of the service instance to online..." $timer.Status
= [Microsoft.SharePoint.Administration.SPObjectStatus]::Online $timer.Update() write-host -ForegroundColor Red "You MUST now go
restart the SharePoint timer service on server " $timer.Server.Name}}
else{Write-Host -ForegroundColor Green "All Timer Service Instances
in the farm are online. No problems found!"}
- Finally, the FIM service got started and UPS sync service is up and running