Microsoft SharePoint 2010 Upgrade Planning

I recently came across draft guidelines from Microsoft that describe the requirements and considerations for planning to upgrade to SharePoint 2010. It's a one page document. It's easy to read to and to the point. I found it quite useful. Microsoft describes this document as:

"This model covers planning for an upgrade from Microsoft Office SharePoint Server 2007 or Windows SharePoint Services 3.0 to SharePoint 2010 Products.
It includes information about the following: Upgrade requirements: Hardware, operating system, and database
Upgrade process: specific steps to follow before, during, and after the upgrade"

You can download it from Microsoft Download Center: http://www.microsoft.com/downloads/details.aspx?FamilyID=eef6f604-9faa-4ea8-b000-569c656b7420&displaylang=en

Running SharePoint 2010 on a domain controller

If you need to run SharePoint 2010 on a domain controller, then you have to run the following PowerShell command on your SharePoint server to enable Sandboxed Solutions:

$acl = Get-Acl HKLM:\System\CurrentControlSet\Control\ComputerName
$person = [System.Security.Principal.NTAccount]"Users"
$access = [System.Security.AccessControl.RegistryRights]::FullControl
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]::None
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($person, $access, $inheritance, $propagation, $type)
$acl.AddAccessRule($rule)
Set-Acl HKLM:\System\CurrentControlSet\Control\ComputerName $acl

This PowerShell command will add an ACL access rule on your server, without which SPUCWorkerProcess.exe process won't start even though Microsoft SharePoint Foundation User Code Service will start.

P.S.: It's never a good idea to run any server applications (including SharePoint 2010) on your domain controllers, so please avoid it whenever possible.

Blank page instead of the SharePoint Central Administration site

If you're getting a blank page when you are trying to access SharePoint Central Administration site, then check your IIS settings. To be more specific, check the authentication settings for SharePoint Central Administration website in IIS. Make sure that you have Windows Authentication enabled and Anonymous Authentication disabled.

This must be the shortest blog post I have ever written. But taking into consideration that it was written on the first day of work after the holiday season, it's not so bad. Happy New Year everyone!!! J

Integrating TFS 2010 with SharePoint 2010 beta 2

It is definitely possible to use SharePoint 2010 beta 2 with TFS 2010 beta 2. You don't even need to do a lot of work to get them working together. A few things to consider:

  • SharePoint 2010 beta 2 must be preinstalled (either on the same or separate machines) since TFS configuration wizard will not install SharePoint 2010 for you (only can only install WSS3)
  • You need to manually enable TFS to log diagnostics information to SharePoint 2010 logs, because Microsoft changed the trace mechanism used in SharePoint 2010. To do that open SharePoint 2010 Management Console and type in
    Set-SPDiagnosticConfig –AllowLegacyTraceProviders
  • Since we are dealing with beta products, some things in the project dashboards might look a bit funny in IE8
  • And last, but not least, if you decide to go with SharePoint 2010, do not forget to allocate a LOT of memory to SharePoint server (physical or virtual) because SharePoint will need it to function properly.

Using local accounts in SharePoint 2010 complete install

If you want to install and configure SharePoint 2010 in a standalone environment, but you do not want to use SQL Express and/or if you it to run in a workgroup environment, by default SharePoint 2010 configuration wizard will not allow you to do that. There is a way to get around this limitation though:

  • Open SharePoint 2010 management shell, (you can find it at the same location as the SharePoint Central Administration link)
  • Type in New-SPConfigurationDatabase to create new SharePoint configuration database manually
  • Enter the name of the new SharePoint configuration database and hit Enter
  • Enter the credentials that you want to use to create new SharePoint configuration database. Enter the password for those credentials when you get prompted to type in a passphrase and hit Enter. Your new SharePoint configuration database will now be created, just wait a few seconds/minutes.
  • Run SharePoint configuration wizard, select Do not disconnect from this SharePoint farm option and continue with the configuration...

Find bottlenecks in Windows 7

From what we've seen so far Windows 7 is already performing better than Vista, but if your PC seems sluggish then it's now much easier to uncover the bottleneck. Click Start, type RESMON and press Enter to launch the Resource Monitor. Click the CPU, Memory, Disk or Network tabs. Windows 7 will immediately show which processes are hogging the most system resources.

The CPU view is particularly useful, and provides something like a more powerful version of Task Manager. If a program has locked up, for example, then right-click its name in the list and select Analyze Process. Windows will then try to tell you why it's hanging - the program might be waiting for another process, perhaps - which could give you the information you need to fix the problem.

Cannot move, hide, or add anything in SharePoint navigation menu

Yesterday I have witnessed a very weird behaviour of SharePoint navigation menu. Basically, SharePoint refused to save any changes (add/remove, hide, move, etc.) to SharePoint navigation menu. To make things even more confusing, it did not throw any errors or warnings in the event logs or SharePoint logs when this happened! In the process of troubleshooting this problem, we have systematically eliminated navigation provider(s), master pages, pages layouts, web.config(s), etc. as a potential source of this problem. We have checked everything and we're not able to come even close to finding a solution. Just before we started to plan on rebuilding the entire SharePoint environment to solve the problem, we have (almost accidently) found what was causing the problem. It turns out that what was causing this weird behaviour is that a default value of a single Boolean variable (_spSuppressFormOnSubmitWrapper) in INIT.JS file was changed from FALSE to TRUE. This almost makes sense, but... If you change the default behaviour of the submit button, shouldn't this change for effect the entire SharePoint environment, instead of singling only the navigation menu? Weird?! I am glad the problem was resolved though J

Change SharePoint Service Accounts

Change SharePoint Central Administration Account

  1. On servers running SharePoint Central Administration site run the following command:
    stsadm -o updatefarmcredentials -userlogin DOMAIN\USERNAME -password PASSWORD
  2. On other servers not running SharePoint Central Administration site run the following command:
    stsadm -o updatefarmcredentials -userlogin DOMAIN\USERNAME -password PASSWORD -local
  3. Run iisreset /noforce to restart IIS
  4. To make sure that this operation completed, open SharePoint Central Administration site >> Operations >> Timer job definitions and wait until Administration Application Pool Credential Deployment timer job disappears from the list.

Change Application Pool Accounts

There are two ways to change application pool accounts in SharePoint: first one using GUI, and the second using STSADM command. To change application pool accounts using GUI:

  • Open SharePoint Central Administration site >> Operations >> Service Accounts (under Security Configuration section)
  • Select Web Application Pool option and pick Web Service and Application Pool you would like to make changes to
  • Enter username and password for application pool service account.
  • You need to do this for each application pool account you would like to change on every SharePoint server in your farm

To change application pool account using STSADM command, run:

stsadm -o updateaccountpassword -userlogin DOMAIN\USERNAME -password PASSWORD –noadmin

Once again, you need to do this for each application pool account you would like to change on every SharePoint server in your farm.

There is also a third way to change application pool account – using LaPointe's custom STSADM command extensions: http://stsadm.blogspot.com/2008/10/changing-application-pool-identity-via.html

To change application pool account for SharePoint Central Administration web application run:

stsadm -o updatefarmcredentials -userlogin DOMAIN\USERNAME -password PASSWORD

 

Change Windows SharePoint Services Help Search account

To change Windows SharePoint Services Help Search account, run:

stsadm -o spsearch -farmserviceaccount DOMAIN\USERNAME -farmservicepassword PASSWORD

Change Default content access account (used by the Windows SharePoint Services Help Search service)

To change Default Content Access account, run:

stsadm -o spsearch -farmcontentaccessaccount DOMAIN\USERNAME -farmcontentaccesspassword PASSWORD

Change Office SharePoint Server Search service account

To change Office SharePoint Server Search account, run:

stsadm -o osearch -farmserviceaccount DOMAIN\USERNAME -farmservicepassword PASSWORD

Change Default content access account (used by the Shared Service Provider)

To change Default Content Access account, if the Infrastructure Update for Microsoft Office Servers is installed:

  • Open SharePoint Central Administration site, click on your Shared Services Provider (in the Quick Launch, in the Shared Services Administration group)
  • On the Shared Services Administration page, in the Search section, click Search Administration.
  • On the Search Administration page, on the Quick Launch, in the Crawling section, click Default content access account
  • On the Default Content Access Account page, in the Account box, type the domain and user name for the account (in the form DomainName\UserName)
  • In the Password and Confirm Password boxes, type the password for the account.
  • Click OK.

To change Default Content Access account, if the Infrastructure Update for Microsoft Office Servers is not installed:

  • Open SharePoint Central Administration site, click on your Shared Services Provider (in the Quick Launch, in the Shared Services Administration group)
  • On the Shared Services Administration page, in the Search section, click Search Settings.
  • On the Configure Search Settings page, in the Crawl Settings section, click Default content access account
  • On the Default Content Access Account page, in the Account box, type the domain and user name for the account (in the form DomainName\UserName)
  • In the Password and Confirm Password boxes, type the password for the account.
  • Click OK.

You can also use crawl rules to specify a different content access account or authentication method, read more at http://technet.microsoft.com/en-us/library/cc263052.aspx.

Change Shared Service Provider Service Accounts

To change Shared Service Provider Service Accounts, run:

stsadm -o editssp -title SHAREDSERVICESPROVIDERNAME -ssplogin DOMAIN\USERNAME -ssppassword PASSWORD

You need to run this command on every SharePoint server in your farm.

Change Excel Services Account

To change Excel Services Account:

  1. Open SharePoint Central Administration site, click on your Shared Services Provider
  2. Click edit Excel Services settings
  3. Enter username and password for the Excel Calculation Services account and then click the OK button.

Change Profile Access account

  1. Open SharePoint Central Administration site, click on your Shared Services Provider
  2. Click User profiles and properties
  3. Click Configure profile import
  4. Enter username and password and then click the OK button

SharePoint deployment jobs are off by 3 hours

One of the beautiful things about SharePoint is that you can schedule the time when you want your solution to be deployed or your page to be published. Recently, I have noticed that on one of our SharePoint farms, all deployment jobs were off by 3 hours. Naturally, I suspect that this problem must be caused by time zone misconfiguration. Obvious, right? What wasn't obvious is that to get this problem fixed you have to make sure that your time zone settings match in three separate places:

  1. Under local regional settings on your server (Do'h)
  2. Under Web Application General Settings (in SharePoint Central Administration >> Application Management). Ideally, all your web application will use the same time zone.
  3. Under Regional Settings in Site Settings for the specific site you're working with.

 

I realize that this is fairly small and easy to fix problem. But I just hate these annoying little problems that interrupt my afternoon nap... now back to sleep, I mean work J

Building public-facing websites using SharePoint 2007: SEO best practices

This is a fourth and final post of the blog post series on building public-facing websites using SharePoint 2007. The first part was dedicated to the planning building public-facing websites using SharePoint 2007. The second part was dedicated to custom branding and development in SharePoint. The third blog post of the series was dedicated to search functionality in SharePoint. Let's start...

 

PAGE CONTENT

To me fresh and relevant content is the single most important aspect that defines your SEO rankings. You must strive to keep the content of your website fresh and read worthy. Take advantage SharePoint workflows and content expiration features to make it easier to generate new content. And, yes, having more text on the page is better than having more images.

Page Title is very important from SEO perspective. It absolutely must be descriptive and to the point. If you have to add your company name to the page title, add it to the end of the page title and separate it with double dashes "--" or something. Please try to avoid naming all pages in the site with the same page title.

Page Description must clearly summarize in one or two sentences what the page is about.

Even though keywords are not as important as they used to be (partially because keywords have been abused in the past.) So, it's up to if you want to use them or not. Personally, I don't.

 

PROPER HTML TAGGING

From my experience, the following HTML tags are important from SEO perspective:

  • H1, H2, H3 ….
  • Title
  • Alt parameters for IMG
  • META tags (maybe)

 

SEO-friendly URLs

Having SEO-friendly URLs is one of the easiest ways to get higher SEO rankings. As long as your page URL contains relevant keywords your page will have high(er) SEO ranking. It is amazing how something this simple can be so important. Use Imtech SharePoint SEO Slugs Feature to get Sharepoint build SEO friendly URL automatically when you create new page(s).

 

Sitemaps and robots.txt

Sitemap is a simple XML file describing the structure and the hierarchy of your website a search engine. It also provides the mechanism for letting search engines know when your pages have been added, removed or otherwise modified. You are supposed to use update your sitemap file every time you add a page, and ideally you should do that for every major search engine. To make things easier, use SharePoint SiteMap Generator.

As with any other public facing website, you should add robots.txt to your website to make sure that search engines do not crawl the sections of the site that you do not want them to. Here is an example of robots.txt file:

User-Agent: *

Disallow: /Search/

Disallow: /_layouts/

Dissalow: /ReusableContent/

Dissalow: /WorkflowTasks/

Dissalow: /SiteCollectionDocuments/

Dissalow: /SiteCollectionImages/

Dissalow: /Documents/Forms/

Dissalow: /Pages/Forms/

 

sitemap: http://www.SHAREPOINTSITE.com/sitemap.xml

 

 

Handling page redirects properly

It is very important to properly handle all your 404 errors. If you have any pages that have been moved or deleted, you must properly handle the HTTP request using URL rewriter and 301 permanent redirects. Here is a sample of the code from MSDN how to do that: http://msdn.microsoft.com/en-us/library/cc721591.aspx

To verify that your URLs return proper HTTP header, use URI Valet.

 

Handy SEO tools for SharePoint

  • Imtech SharePoint SEO Slugs Feature: Imtech SharePoint SEO Slugs is a SharePoint Feature which hooks up to the Create Page Application Page provided with MOSS 2007. While creating a slug it not only separates all the different words with a hyphen (-) but also removes all the stop words as well!
  • SharePoint SiteMap Generator: the process of keeping your site's sitemap.xml file current
  • URI Valet: an online tool to check what HTTP header your URL returns.

 

As I have already mentioned in my previous blog post, ObjectSharp has been working with SharePoint technologies for years now: building public facing websites and intranet for clients, developing custom SharePoint web parts and features, designing custom templates, and so on... Oh yes, I forgot to mention hundreds of hours of SharePoint training (public and private) for developers and power users that we have taught to our clients. So, if you need any help customizing your SharePoint in any way, please email our Client Services Manager, Gisele Bourque, at gbourque@objectsharp.com, and/or if you need any training on SharePoint technologies email our Training Manager, Julie James, at jjames@objectsharp.com. Or visit our new and fancy SharePoint-based website at http://www.objectsharp.com.



Related resources: