Important update: Waldek Mastykarz has posted a workaround here: http://blog.mastykarz.nl/inconvenient-sharepoint-2010-content-query-web-part-anonymous-access/.
</end update>
This week, my team and I were upgrading a customer’s public internet site from MOSS to SP 2010. The MOSS site uses the CQWP in several places.
We went through a very detailed procedure to ensure accuracy, quality and all that good stuff. Despite that, we ran into a problem in the 11th hour that we didn’t expect or uncover until very late. Specifically, our CQWP wouldn’t render for anonymous users. It rendered find for the authors (who were logged in), but it wouldn’t show the content for anonymous users.
We did a lot of research and these are the parameters and actions we took to isolate the behavior:
- CQWP would render fine when it was pulling content from a custom list.
- CQWP would render content from the /Pages library.
- It would not render content from /SiteCollectionImages
- We created a new document library and uploaded a few docs to it. We did not add any content types to the library – this was a simple out of the box doc lib with no customization. Existing CQWP could not read from it.
- We created a new page and added a CQWP to it using all default values. it would not render for anonymous.
- We (somewhat hastily) set up a new SP 2010 environment, straight out of the box again and replicated this behavior.
Bottom line, it appears that CQWP in SP2010 can’t render content for anonymous users when the data source is a document library. Can this be true?
This is the error that we saw in the logs:
Web Part title: Content Query Web Part 653d91fb-2f83-4e6a-83af-1f39e8939f0a
07/30/2010 12:03:56.90 w3wp.exe (0x0F30) 0x1540 SharePoint Foundation Web Parts 89a1 High Error while executing web part: System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.SetDocumentIconUrlAndOnClickString(SPWeb web, DataRow row, String strDefaultItemOpen, Boolean fSetDocIcon, Boolean fSetOnClick, String fileRefColumnRef, String progIdColumnRef, String fsobjTypeColumnRef, String permMaskColumnRef) at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.PreProcessForDocumentIconAndOnClickAttribute() at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.AddContentQueryData() at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.GetXPathNavigator(String viewPath) at Microsoft.SharePoint.WebPartPages.DataFormWebPart…. 653d91fb-2f83-4e6a-83af-1f39e8939f0a
It just seems kind of impossible that CQWP wouldn’t work for anonymous users. If you know any more about this, please post a comment.
</end>
Follow me on Twitter at http://www.twitter.com/pagalvin
Pingback: Tweets that mention SP 2010 CQWP, Document Libraries and Anonymous Users « Paul Galvin's SharePoint Space -- Topsy.com
Pingback: Inconvenient SharePoint 2010 Content Query Web Part and Anonymous Access - Waldek Mastykarz
Paul, did you ever get this resolved? I have had a love / hate relationship with the CQWP since SP 2007. Thanks for the post.
-Eugene
Just because I didnt see any links postet here yet, a few pointers:
http://social.msdn.microsoft.com/Forums/en-US/sharepoint2010general/thread/892c9b5e-9ef3-4471-8825-6d632d046118
http://social.technet.microsoft.com/Forums/en-US/sharepoint2010customization/thread/90223bf3-278f-4168-b124-3413489b936a
http://www.sharepointoverflow.com/questions/3979/content-query-web-part-cqwp-fails-to-show-picture-items-from-a-document-picture/4008#4008
http://blog.mastykarz.nl/inconvenient-sharepoint-2010-content-query-web-part-anonymous-access/
A few workarounds, but there apparently is no FIX for this problem. The CQWP just doesnt work anonymously i suppose…
Did you ever find out more about this issue?
I am having the same problem. Site going live soon and I’ve discovered that CQWP don’t show content from the Pages library when not logged in. I have triple checked that all pages are checked-in and published.
Content Query Web Part (CQWP) has to be tweaked to work with Anonymous Access please see http://blogs.edork.com/MikeGeyer/Lists/Posts/Post.aspx?ID=20
I just ran into this problem, however I also have a case of it working when querying for videos 😐
If I find out more I’ll report back