By: Yi Fan Tang
SharePoint 2010 configuration database can be corrupted for various reasons. If you get the following error after trying to do some configurations in Central Administration and hit “OK”, the “Objects” table in the configuration database might be corrupted.

System.Xml.XmlException: ‘.’, hexadecimal value 0x00, is an invalid character. Line 1, position 84.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ThrowInvalidChar(Int32 pos, Char invChar)
at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr)
at System.Xml.XmlTextReaderImpl.ParseAttributes()
at System.Xml.XmlTextReaderImpl.ParseElement()
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
at System.Xml.XmlDocument.Load(XmlReader reader)
at Microsoft.SharePoint.Administration.SPConfigurationDatabase.GetObject(Guid id, Guid parentId, Guid type, String name, SPObjectStatus status, Byte[] versionBuffer, String xml)
at Microsoft.SharePoint.Administration.SPConfigurationDatabase.GetObject(SqlDataReader dr)
at Microsoft.SharePoint.Administration.SPConfigurationDatabase.RefreshCache(Int64 currentVersionOverride, List`1& newObjects, List`1& deletedObjects, Int64& newestObjectVersion)
at Microsoft.SharePoint.Administration.SPConfigurationDatabase.RefreshCache()
at Microsoft.SharePoint.Administration.SPConfigurationDatabase.StoreObject(SPPersistedObject obj, Boolean storeClassIfNecessary, Boolean ensure)
at Microsoft.SharePoint.Administration.SPConfigurationDatabase.Microsoft.SharePoint.Administration.ISPPersistedStoreProvider.PutObject(SPPersistedObject persistedObject, Boolean ensure)
at Microsoft.SharePoint.Administration.SPPersistedObject.BaseUpdate()
at Microsoft.SharePoint.Upgrade.SPUpgradeSession.Update()
at Microsoft.SharePoint.Upgrade.SPUpgradeSession.CommitToFarm(SPManager manager, SPFarm farm)
at Microsoft.SharePoint.Upgrade.SPManager.BootStrap(Guid sessionId, SPUpgradeOperationFlags flags)
at Microsoft.SharePoint.PostSetupConfiguration.UpgradeBootstrapTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()
You can investigate further by running a query directly on the configuration database. Go the SQL server and open the “Management Studio”. Right click on the configuration database and click “New Query”. Type the following query:
Select CAST(Properties as XML) from objects with(nolock)
You will probably get a similar error message about the invalid characters.

It means there are some invalid characters in the “Properties” column of the “objects” table. You can go a little deeper by using PowerShell to track down which object is corrupted and then delete or change its property value. However, this is not supported by Microsoft. The normal way to do is create a new farm and migrate all service application databases and content databases into the new farm.
Comments are closed.