UPDATED 2010-12-18: After some further Internet sleuthing it appears that the control “TaxonomyPicker.ascx” isn’t actually required – it was left in accidentally from release. When SharePoint websites start they automatically compile and cache controls in the “/_controltemplates” folder (default location is C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES), which includes the TaxonomyPicker.ascx control. The controls are checked against the SharePoint DLLs (Microsoft.SharePoint.Portal in particular), and thus the error that is raised is actually because the control entry does not exist in the SharePoint DLLs. Hence the event log is actually saying “I have an .ascx file that does not have a matching entry in the SharePoint DLLs”.
The (rather dramatic) fix is to rename (or deleted, though that is more drastic!) the taxonomypicker.ascx file to taxonomypicker.ascx.old (or something else relevant) so that SharePoint does not automatically try and load the file. Perform this task in a test environment first! Future service packs or hotfixes may fix this issue, but also it is likely that TaxonomyPicker.ascx could be automatically re-added as part of maintenance by a SharePoint hotfix/service pack, so you may need to repeat this process again at a later date if it isn’t fixed.
ORIGINAL POST: With thanks to Xiaofeng Wang (MVP) in this post, the event log error details are: “Load control template file /_controltemplates/TaxonomyPicker.ascx failed: Could not load type ‘Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker’ from assembly ‘Microsoft.SharePoint.Portal, Version=22.214.171.124, Culture=neutral, PublicKeyToken=71e9bce111e9429c’.”
This is due to a bug in the ASP.NET control file definition within SharePoint 2010.
To fix this issue:
- Go to :\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES
- Open TaxonomyPicker.ascx in any text editor (such as Notepad)
- Locate the following line :
<%@ Control className=”TaxonomyPickerControl” Inherits=”Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker,Microsoft.SharePoint.Portal, Version=126.96.36.199, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
- Replace ‘,’ with a comma i.e. ‘,’ , the correct line should look like:
<%@ Control className=”TaxonomyPickerControl” Inherits=”Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker, Microsoft.SharePoint.Portal, Version=188.8.131.52, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
- Save the file