Category Archives: Sharepoint

Useful SharePoint 2013 Info

I stumbled onto this site recently and it’s proven to have some very useful information about SharePoint 2013. You’ll find whitepapers, configuration information, certification exam information, and a whole host of other topics.

Check it out here: http://www.absolute-sharepoint.com/search/label/SharePoint2013.

SQL Server SSPI handshake failed with error code 0x8009030c

Ran into this issue during a new SP 2010 install this week:

“SQL Server SSPI handshake failed with error code 0x8009030c”

Took awhile to figure out but I was able to solve it by making a Local Security Policy change on the SQL box:

Go to Local policies | User rights assignment | Access this computer from the network and add the account(s) that are trying to login to SQL.

Credit to link for the info.

Iterating through a SharePoint discussion list

One of those things that you think should be pretty straightforward…

Credit to Dave Ginn for finding the solution.


List itemList = new List();

foreach (SPListItem discussion in discList.Folders)
{
   //discussion.Title is discussion title
   SPQuery query = new SPQuery();
   query.Folder = discussion.Folder;
   SPListItemCollection messages = discList.GetItems(query);
   itemList.Add(new Discussion(discussion.Title, messages.Count));
}

//sort by most comments
itemList.Sort(delegate(Discussion p1, Discussion p2)
{ return p2.Comments.CompareTo(p1.Comments); });

Here’s the site I used for reference:
http://sharepoint.stackexchange.com/questions/20216/iterate-through-discussion-list

Essential reading for SharePoint Admins

Told you I’d be back. 😉

Here’s an invaluable article that explains exactly how the MySite Cleanup Timer Job works.  If you’re an admin, you WILL get questions about this eventually so better to get the knowledge now.

http://blogs.msdn.com/b/kaevans/archive/2012/06/25/top-recommendations-for-managing-the-my-site-cleanup-timer-job.aspx

SharePoint 2010 – Page Layouts getting deployed as “customized”

This is getting filed under the truly bizarre category.

I’m working on deploying a masterpage and a page layout as part of a solution package for my current client.  I finished designing both files and have added them to my solution.  I verified that neither had any of the “extra” markup that SharePoint Designer adds when you create files.  I deployed the solution to my environment and everything worked as expected.

I then needed to make a change to the page layout.  So, I made the change in the solution and re-deployed the .wsp only to find that my page layout didn’t get updated.  I opened up SPD to find that my page layout was marked as “customized”!  I checked all of the usual gotchas with regards to this issue (search Google) and even tried to “Revert to Site Definition”.  Nothing worked.

I then noticed that Visual Studio had made all of my “<asp:Content>” tags lowercase (<asp:content>).  Surely that couldn’t be the issue, right?  Wrong.  I changed them back to “<asp:Content>” and everything worked as expected.

I guess I should have known better since I’ve had this issue in the past with SharePoint 2007 (http://ericcwebb.com/2011/01/18/sharepoint-page-layouts-extra-markup-added/).  However, I at least got an error message with that issue.

SharePoint PeoplePicker in a one-way trust scenario

I was having major issues getting the people picker to work in a one way trust scenario. Here is what helped me get it working:

1. Ensure that the AD trust is working correctly. This can be done in Active Directory Domains and Trust on the Domain Controller.

2. The Farm Account should be a member of the local machine’s administrator group.

3. On the “HKLM\Software\Microsoft\Shared Tools\Web Server Extensions\14.0\Secure” registry key ensure the following permissions are in place and are being inherited in the sub-keys

* WSS_WPG Read permission
* WSS_Admin_WPG Full Control
* WSS_RESTRICTED_WPG_V4 Full Control

4. Get and copy the peoplepicker-searchadforests property value via stsadm command:
stsadm -o getproperty -url -pn peoplepicker-searchadforests

5. Clear the peoplepicker-searchadforests property value via stsadm command:
stsadm -o setproperty -url -pn peoplepicker-searchadforests -pv “”

6. Rerun the password encrypt command with different password:
stsadm -o setapppassword -password
NewPassword can be anything you want.

7. Set the peoplepicker-searchadforests property value via stsadm command:
stsadm -o setproperty -url -pn peoplepicker-searchadforests -pv

Credit for this list goes to http://www.agrypnia.com/blog/2010/12/22/sharepoint-2010-there-was-an-error-in-the-callback.html

SharePoint 2010 Unmanaged Accounts

Take a look at this article: http://www.windowsitpro.com/article/sharepoint/Watch-Out-for-Unmanaged-Accounts.aspx

Apparently, MS didn’t make every account managed. I just ran into an issue today where the default content access account automatically reset it’s password and it didn’t get updated in the search service. As a result, all crawls started to fail.

SharePoint 2010 CSS – Dialog Boxes

Came across a good post here about dealing with dialog boxes when branding a SharePoint 2010 site: http://www.heatherwaterman.com/blog/Lists/Posts/Post.aspx?ID=21.

Adding .ms-dialog in front of some additional styles allowed me to remove my page background image and remove the fixed width in my container div.  Good deal.

Page Layouts, Solutions and SharePoint Designer (Updated)

If you are deploying custom page layouts using a feature, DO NOT OPEN THEM IN SHAREPOINT DESIGNER! Not even once. Not just to “take a look”. Not for giggles.

Why? Because once you open that page layout in SharePoint Designer, it gets un-ghosted. This does two things. First, it means that you have to make changes in SharePoint Designer. The .aspx file in the feature directory is no longer used when rendering pages based on that page layout. Second, if you’ve attached a code-behind to the page, you’ll get a error indicating that type is not registered as safe. This occurs because SharePoint uses a type-safe parser on all un-ghosted content.

If you’ve come accross this post because you already did open the page layout in SPD, have no fear. To remedy your error, simply go to Site Actions…Site Settings…Reset to Site Definition. Once you do that, re-deploy your feature containing the page layout. Now, your page layout is ghosted.

Update: Well, I ran into an issue where “Reset to Site Definition” just didn’t work. So, I tried the stsadm command here (with -force): http://stsadm.blogspot.com/2007/09/re-ghosting-pages.html and now we’re back to un-ghosted. Very frustrating.

SharePoint Top Nav Dividers

In a client project I’m working on, the design calls for dividers in between each navigation link. No problem. Here’s the CSS:


.ms-topnav a
{
	border-left-style:solid !important;
	border-left-color:#fff !important;
	border-left-width:1px !important;
	padding: 0 10px 0 10px;

}

However, this leaves the border on the first element of the navigation, which we don’t want. There’s no way to select that element using just CSS, so JQuery to the rescue:


$(document).ready(function(){

	$(".ms-topNavContainer").each(function() {

        var links = $(this).find("a");

        if (links.length > 0) {
            var link = links[0];
            $(link).addClass("navLast");
        }

    });

});

The CSS for “navLast”:


a.navLast
{
	border-left-style:none !important;
}


The interesting thing here is that it has to be “a.navLast”. For some reason, “.navLast” doesn’t work. Also, you can’t use “border-left” to add the dividers. You have to use the individual styles (most likely because of the inline styles on the element).

Switch to our mobile site