Il tormentone dello SharePoint 2010 Event Log Error 7043 TaxonomyPicker.ascx

Chi si trova ad installare Farm SharePoint 2010 si sarà sicuramente imbattuto in un errore tracciato da Event Viewer relativo al TaxonomyPicker.ascx.

Impossibile caricare il file del modello di controllo /_controltemplates/TaxonomyPicker.ascx: Could not load type 'Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker' from assembly 'Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.

Si tratta in realtà di un errore piuttosto innocuo, su cui occorre riporre la giusta attenzione (si tratta di un refuso, in quanto il controllo in questione non è più utilizzato). Tuttavia, per i puristi che desiderano avere un Event Viewer pulito, ecco alcune indicazioni in più.

Quando una Web application SharePoint parte per la prima volta, i controlli vengono "compilati". Controlli contenuti nel folder "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES" e mappati sulla virtual directory "/_controltemplates" (compreso il controllo "TaxonomyPicker.ascx").

I controlli vengono richiamati dalle DLL di SharePoint, ed il controllo incriminato non è più presente sulle DLL di SharePoint (in particolare si cerca di richiamarlo dalla DLL Microsoft.SharePoint.Portal).

Un possibile workaround è quello di rinominare il controllo taxonomypicker.ascx in taxonomypicker.ascx.old (i più drastici suggeriscono l'eliminazione). A seguito di un aggiornamento o dell'applicazione di una hotfix però potrebbe ricomparire il file taxonomypicker.ascx, e quindi servirà ripetere la rinomina del file.

Un'altra strada potrebbe essere la seguente:

  1. Accedi al folder C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES
  2. Apri con Notepad il file TaxonomyPicker.ascx
  3. Individua la seguente riga:
    <%@ Control className="TaxonomyPickerControl" Language="C#" Inherits="Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker&#44;Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  4. Sostituisci ‘&#44′ con una virgola ‘,
    in modo che risulti qualcosa del genere:
    <%@ Control className="TaxonomyPickerControl" Language="C#" Inherits="Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker, Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  5. Salva il file

Ovviamente fate una prova in ambiente di test e fatevi sempre una copia dei file prima della modifica!