User Profile Synchronization Service e regional settings
Qualche giorno fa mi sono scontrato con una configurazione “problematica” della User Profile Service Application. Tralasciando i primi problemi dovuti, come succede nella maggior parte dei casi, a permessi utente non corretti mi sono trovato presto ad affrontare un errore che non avevo ancora notato nelle mie avventure precedenti. Ma andiamo per ordine.
Avviando lo User Profile Synchronization Service ad un certo punto notavo nei log una serie di errori con in comune questo messaggio:
There was an error deserializing the object . String was not recognized as a valid DateTime. —> System.FormatException: String was not recognized as a valid DateTime.
seguito dopo poco da
Failed to configure ILM MA, will attempt during next rerun. Exception: Microsoft.ResourceManagement.WebServices.Faults.ServiceFaultException: Unable to process Create message
A questi è seguito un messaggio di errore di ULSViewer relativo ad un eccezione legata al formato data/ora. A questo punto ho controllato le impostazioni regionali del server. Ho notato che il separatore di ore/minuti/secondi era impostato sul punto (HH.mm.ss) e non con i più comuni due punti (HH:mm:ss).
Devo ammettere che una volta modificata questa impostazione e verificato che il servizio User Profile Synchronization Service si è avviato correttamente ho provato un po’ di stupore. Ho quindi effettuato altri test sulla mia VM (SPS2010 Sp1 + CU Dicembre 2011, lo stesso livello di aggiornamento del caso precedente) e, pur senza riuscire a riprodurre il primo dei due messaggi, ogni volta che modificavo i regional settings impostando il punto come separatore di ore/minuti/secondi, ottenevo il secondo:
Failed to configure ILM MA, will attempt during next rerun. Exception: Microsoft.ResourceManagement.WebServices.Faults.ServiceFaultException: Unable to process Create message
La cosa “curiosa” è che dalla Central Administration il servizio risultava avviato correttamente, ma accedendo alla pagina delle Synchronization Connections non risultava nulla di quanto configurato in precedenza. Provando a configurare una nuova connessione ho ottenuto l’errore seguente:
con relativi log:
LoadConnections failed trying to fill the connections list. Most likely during RetriveResources because of permissions — {1}. Available parameters: System.Runtime.Serialization.SerializationException: There was an error deserializing the object . String was not recognized as a valid DateTime. —> System.FormatException: String was not recognized as a valid DateTime.
e rieccoci con il “DateTime”… Curioso anche il messaggio successivo :).
ConnectionManager.LoadConnections(): Could not find MOSS MA despite being marked as fully configured, was it deleted?
Riportando il formato dell’ora alle impostazioni originali e riavviando il servizio User Profile Synchronization Service tutto è tornato a funzionare correttamente.
System Failure (l’influenza di Matrix si fa sentire :))
– Riccardo