User Profile Synchronization Service does not start due to Serialization Error: “String was not recognized as a valid DateTime”

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/148891

Pregunta

I'm Trying to start User Profile Synchronization Service on a Sharepoint 2013 system but it does not and it reports the following error in ULS:

UserProfileApplication.SynchronizeMIIS: Error updating users with FIM permissions: 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.     
    at System.DateTime.Parse(String s, IFormatProvider provider, DateTimeStyles styles)     
    at Microsoft.ResourceManagement.Utilities.DateTimeSerializer.ReadCoordinatedUniversalTimeStringIntoCoordinatedUniversalDateTime(String input)     
    at Microsoft.ResourceManagement.WebServices.Client.Resource.ResourceSerializer.ProcessElement(XmlDictionaryReader reader, Boolean& readerAdvanced)  
etc...

The message "String was not recognized as a valid DateTime" has pointed me to some solutions, one of which here on Stack Exchange (User Profile Synchronization Service won't start String not recognized as DateTime) but none seem to work for me. It looks like a problem related to the Regional/Locale settings. When I run PowerShell as the Farm managed user and execute Get-Culture and GetSystemLocale, I get the following output:

PS C:\Users\myusername> Get-WinSystemLocale

LCID             Name             DisplayName                                                                                                                            
----             ----             -----------                                                                                                                            
1033             en-US            English (United States)                                                                                                                



PS C:\Users\spsadminp> Get-Culture

LCID             Name             DisplayName                                                                                                                            
----             ----             -----------                                                                                                                            
1040             it-IT            Italian (Italy)   

while if I run them "as administrator" with my usual user I get:

PS C:\Windows\system32> Get-WinSystemLocale

LCID             Name             DisplayName                                                                                                                                   
----             ----             -----------                                                                                                                                   
1033             en-US            English (United States)                                                                                                                       



PS C:\Windows\system32> Get-Culture

LCID             Name             DisplayName                                                                                                                                   
----             ----             -----------                                                                                                                                   
1033             en-US            English (United States)   

Does this error depend on the Region settings? If so, What are the correct settings I should use to get it working? Is the DB involved in the error? (in this case, what errors should I look for?)

Is there something else I could try to get the User Profile Sychronization Service started? Please comment if further detail is needed.

¿Fue útil?

Solución 2

I finally managed to work around this issue and the actual solution is the first answer to this question, comments included.

I logged on the server as the farm admin managed user, went to the "Region" dialog (just type "Region" in the search box of the start screen and you should get one result) and changed the setting from the previous one (Italian, in my case) to the language that matches the Language ID of the original installer of Sharepoint (English).

The point is that you have to know in which Language the original installer was. I did not know if there is a way to find this information out. I had to ask the client who, luckily, remembered it. Apparently it does not matter how many language packs you have installed.

Once done this, the problem disappeared and the service started.

Otros consejos

In order to successfully provision "User Profile Synchronization Service" on a SharePoint 2010 or a SharePoint 2013 you need specific permission.

  1. FIM Account must have "Logon Locally" policy. Grant this using Local Security Policy on the server is receiving User Profile Synchronization Service provisioning;

  2. SharePoint Timer Service account need to be local Administrator on target server because Provisioning Timer Job need to create Local Security Group and access with write permission to Windows Registry. After provisioning you can remove this user from local Administrators.

Important NOTE: Be sure that Regional Settings of the Domain User that is running SharePoint Timer Service are the same as Language ID of SharePoint Installation.

http://macslui.blogspot.de/2013/02/user-profile-service-provisioning.html

Licenciado bajo: CC-BY-SA con atribución
scroll top