Posts
163
Comments
179
Trackbacks
5
lunedì 3 novembre 2008
WSS 3.0, Search Server 2008 Express e gli errori ricorrenti

Come già detto in un post precedente, sto provando WSS 3.0 in accoppiata con Search Server 2008 Express. Tutto funziona correttamente, ma dopo aver eseguito l’upgrade di un’installazione WSS 3.0 funzionante mi sono ritrovato nell’event viewer una serie di errori di questo tipo:

The Execute method of job definition Microsoft.SharePoint.Search.Administration.SPSearc hJobDefinition (ID
82c8c6fa-564f-4d43-877e-b4e549c6410e) threw an exception. More information is
included below.


Retrieving the COM class factory for component with CLSID
{629DA12E-9AD5-4FEC-B886-42C5982C5109} failed due to the following error:  80070422.

Cercando su internet si trovano tantissimi casi simili. Vengono proposte soluzioni varie, riconfigurazione di permessi sul DCOM, etc etc. Nel mio caso però non avevo situazioni strane: tutto installato sulla stessa macchina, uso di un unico account per la configurazione di tutti i servizi, account amministratore di macchina.

Gli errori nel log però continuavano a saltar fuori. Indagando meglio e cercando l’ID della componente sul registro ho notato che è il servizio di ricerca di SharePoint a generare tutti gli errori. Andando a verificare i servizi attivi ho notato che Search Server 2008 Express installa il suo servizio chiamato “Office SharePoint Server Search” (che dovrebbe essere lo stesso di MOSS 2007 se non ricordo male). Il servizio di ricerca di WSS invece si chiama “Windows SharePoint Services Search” e dopo l’installazione di Search Server 2008 viene disabilitato.

Apparentemente tutto corretto, ma andando a verificare i servizi attivi sull’Amministrazione Centrale di SharePoint si nota che è stato anche qui aggiunto il nuovo servizio di ricerca, ma quello vecchio non è stato stoppato. Nella pratica ogni volta che WSS tenta di indicizzare i contenuti con il suo servizio (nel mio caso ogni 5 minuti), parte il job relativo, ma il servizio di Windows è disabilitato e da qui gli errori sull’Event Viewer.

Stoppando il servizio di ricerca di WSS anche su SharePoint tutto torna alla normalità e gli errori spariscono.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (0)
Creare web part Ajax Enabled per SharePoint 2007

Al giorno d’oggi un’applicazione web che si rispetti non può più fare a meno di Ajax. Anche su SharePoint vale la stessa cosa e andando a sviluppare web part è quasi “d'obbligo” utilizzare un qualche framework Ajax. Volendo utilizzare le Ajax Extension di Microsoft e volendo anche utilizzare il nuovo Framework 3.5 è necessario compiere alcuni piccoli passi.
La prima cosa da fare è modificare il web.config di SharePoint affinchè includa tutte le entry necessarie a supportare il Framework .NET 3.5. E’ possibile editare a mano il web.config di SharePoint e riportare tutte le modifiche, ma esiste anche un metodo più rapido descritto in questo post. Qui i punti salienti:

  1. Da Visual Studio 2008 creare un progetto web temporaneo;
  2. Selezionare come target il Framework 2.0;
  3. Copiare il web.config di SharePoint nel nuovo progetto;
  4. Cambiare il target del progetto selezionado il Framework 3.5;
  5. Copiare il web.config modificato nella virtual directory di SharePoint.

Fatto questo il nostro web.config avrà tutto il necessario per supportare LINQ, le Ajax Extensions, e compagnia varia.
A questo punto potremo creare le nostre web part Ajax-Enabled. L’unica accortezza è quella di verificare che nella pagina ci sia sempre uno ScriptManager. Volendo è possibile modificare direttamente la master page, ma in caso di redistribuzione della nostra web part potrebbe essere scomodo.

Possiamo però verificare da codice la presenza dello script manager e nel caso non fosse presente possiamo andare ad aggiungerlo in automatico:

   1: protected override void OnInit(EventArgs e)
   2: {
   3:   base.OnInit(e);
   4:   try
   5:   {
   6:     // Verifico se lo script manager è già presente
   7:     ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
   8:     if (scriptManager == null)
   9:     {
  10:       scriptManager = new ScriptManager();
  11:       scriptManager.ID = "ScriptManager1";
  12:       scriptManager.EnablePartialRendering = true;
  13:       // Aggiungo lo script manager alla pagina
  14:       this.Page.Form.Controls.AddAt(0, scriptManager);
  15:     }
  16:   }
  17:   catch (Exception ex)
  18:   {
  19:     error = ex.ToString();
  20:   }
  21: }

Per finire nel caso ci fossero problemi di postback con gli update panel, questo KB della Microsoft mostra il work-around da utilizzare.
Alla prossima!

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (1)
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS