User Profile Service Application page cannot be opened
-
30-01-2021 - |
質問
When I try to access the User Profile Service Application page, it shows the 'Something went wrong' error. Also the user profile sync service cannot be started as it keep being stuck in starting.
This issue occurs after the server has been infected by ransomware. After the cleanup, I deleted and recreated the service application several times but still the page cannot be accessed and the UPS sync service keep stuck on starting/stopping.
In the event viewer error logs are showing:
[FileLoadException: The given assembly name or codebase, ' C:\Program Files\Microsoft Office Servers\15.0\WebServices\Profile\ Profilepropertyservice.svc & ProfileDBCacheService.svc', was invalid.] System.ServiceModel.Activation.ServiceHttpModule.BeginProcessRequest(Object sender, EventArgs e, AsyncCallback cb, Object extraData) +0
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +556 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288
解決
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