Wednesday, February 23, 2011

Help Content Cannot Be Displayed in SharePoint 2010

Today we had a weird error on our SharePoint 2010 production farm: clicking on help got the "help content cannot be displayed" error for all normal sites, even though it worked perfectly well in Central Admin. The same applied to Site Settings>Help Settings for the site-collection, it worked in Central Admin, but not in any other site. In addition, the 'SharePoint Foundation Search' service was running on one WFE server.

First I checked all settings in KB939313 without that fixing the problem, then I checked the log files and found this access denied error for our site's app-pool account:

SqlError: 'The EXECUTE permission was denied on the object 'proc_EnumResourcesAtScope', database 'SharePoint_AdminContent_ABBAef34-7603-4da5-823a-43ee1327ABBA', schema 'dbo'.'

Before embarking on changing any database rights, we decided to test with an English site just in case, as all our custom site definitions are in Norwegian. Lo and behold - help worked for the new team-site; and what's more, suddenly help was working for all our existing Norwegian LCID 1044 sites also. Go figure...

[UPDATE] See the comments for tips on granting execute rights on the sprocs listed in the ULS to fix this problem once and for all - even beyond IISRESET.

11 comments:

Anonymous said...

Thanks for the tip.
We had to create & delete a new sitecollection in English on all our Web Applications in order to show Help Content.
I felt a lot more comfortable with that, than fiddling with SQL-server rights. :)

Jasper Beerens said...

Unfortunately this doesn't work after an IISRESET ...

Kjell-Sverre Jerijærvi said...

That can happen. If you have a warm-up script, then use that to touch the English site to re-enable help.

Jasper Beerens said...

After a iisreset this doesnt work anymore.

A solutions: locate the WSS_Content_Application_Pools role in the admin db database roles.

In the properties go to securables and search (add) the stored procedures proc_EnumResourcesAtScope and proc_EnumResourceValuesForAllLangs. Grant them execute permissions.

Fidy said...

Hi, thanks a lot for that tip! It really saved my day :)

I just created a sitecollection in English, opened the help settings page in that new page. After that it worked for all other sites, too!

Sikander said...

Thanks for your steps, but in my case it didn't work out since for site collection Help is working (Site Collection is in English) subsite help isn't working that is in (norwegian)

Mohammad Sikander said...

Thanks for the steps, in my case for site collection (English) Help is working fine and for subsite (norwegian) Help isn't working in SP2010.

Barbara Joost said...

I had the same problem with german sites in SharePoint Foundation 2010. Based on your tips I deleted all sites, create a root site in english an after this a subsite in german. This works still after iisreset.

Boris said...

To solve the problem:

Go to Root colletion site: Site Actions->Site Settings->Help Settings.You'll get a corelation error number.Go to error log file on SharePoint server(<%Program Files%>\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS'),find the lines with the correlation number.
Read for which user under what stored procedure (on my sys. was proc_EnumResourcesAtScope and proc_EnumResourceValuesForAllLangs)you have to grand execute permission in Database.Done!

Nico said...

Hi,

Thanks for this great post, for the people who are not sure how to do all this, check:

http://sharepointrelated.com/2011/10/05/sharepoint-2010-help-content-cannot-be-displayed/

for a detailed description.

Pål Amundsen said...

Takk for tipset!