We came across a problem with SharePoint 2010 recently. We had just setup a new MySite configuration, to move our personal sites out in to their own database and application. Everything was working fine for some time.
I noticed the following error in the event logs later on:
Object Cache: The super user account utilized by the cache is not configured. This can increase the number of cache misses, which causes the page requests to consume unneccesary system resources.
To configure the account use the following command ‘stsadm -o setproperty -propertyname portalsuperuseraccount -propertyvalue account -url webappurl’. The account should be any account that has Full Control access to the SharePoint databases but is not an application pool account.
Current default super user account: SHAREPOINT\system
I set the standard accounts for User and Reader that we had in Active Directory through PowerShell, by doing the following:
$w = Get-SPWebApplication “http:///”
$w.Properties[“portalsuperuseraccount”] = “domain\superuser”
$w.Properties[“portalsuperreaderaccount”] = “domain\superreader”
Note: If using claims authentication, you will need to specify the accounts differently by adding: i:0#.w| in front of the account (for example: i:0#.w|domain\superuser).
Everything worked for my own site, so I hadn’t noticed any issues until users started reporting Access Denied errors trying to reach their sites.
The problem ended up being that these accounts were not already in the User Policy for the newly created application, as they were assigned in the previous applications. In order to fix this, we had to do the following:
– Go to: Application Management – Manage Web Applications – Select ‘Your Application Name Here’
– Click on User Policy on the top ribbon bar
– In the resulting window, add the accounts you have in Active Directory for domain\superuser (with Full Control) and domain\superreader (with Full Read)
It is important to note that this can happen in any application that you setup the object cache. Hopefully this will help someone else resolve their issues.