Please ensure you use SPSecurity.RunWithElevatedPrivileges in correct way. Consider below points for the same:
Below is commonly used WRONG way and you may get access denied:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite elevatedSite = SPContext.Current.Site;
using (SPWeb elevatedWeb = elevatedSite.OpenWeb())
{
// Performing administrative actions here will give Access Denied exception.
}
}
});
CORRECT Way:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite elevatedSite = new SPSite(SPContext.Current.Site.Id))
{
using (SPWeb elevatedWeb = elevatedSite.OpenWeb(SPContext.Current.Web.Id))
{
// Perform administrative actions by using the elevated site and web objects.
// elevatedWeb.CurrentUser.LoginName gives SHAREPOINTsystem
}
}
});
Please check out this post for more details:
http://extreme-sharepoint.com/2012/05/30/impersonation-elevation-of-privileges/