November Happy Hour will be moved to Thursday December 5th.

Strange XmlException

Vote:
 

Hi!

I have i site that crasches every now and then. The only solution i have found yet is to recover the database. When i happens, it mess up both the frontend anf the backend, so i think it may be related to EPiServer itself, or the database is somehow currupt. It seems to be related to editors using LinkList adding links to external Url's...

I have a hard time trying to reproduce the error in my development environment, which not helps... I believe it has something to do with PageTree, but i'm not really sure where it uses Xml.

The Exception is always the same, "Exception Details: System.Xml.XmlException: Name cannot begin with the '2' character, hexadecimal value 0x32"

Stack trace:

[XmlException: Name cannot begin with the '2' character, hexadecimal value 0x32. Line 1, position 142.]
   System.Xml.XmlTextReaderImpl.Throw(Exception e) +95
   System.Xml.XmlTextReaderImpl.ParseAttributes() +5090214
   System.Xml.XmlTextReaderImpl.ParseElement() +378
   System.Xml.XmlTextReaderImpl.ParseElementContent() +199
   System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) +229
   System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) +61
   System.Xml.XmlDocument.Load(XmlReader reader) +134
   System.Xml.XmlDocument.LoadXml(String xml) +123
   EPiServer.SpecializedProperties.PropertyLinkCollection.FromLongString(String str) +220
   EPiServer.SpecializedProperties.PropertyLinkCollection.LoadData(Object value) +79
   EPiServer.Core.PropertyLongString.EPiServer.Core.IPropertyLoadDataHandler.Load(String key, IDataRecord record) +197
   EPiServer.DataAccess.PageDB.ReadPropertyData(PropertyData prop, IDataReader reader) +333
   EPiServer.DataAccess.PageDB.ReadProperty(IDataReader reader, PropertyDataType dataType, Boolean readTypeName, Boolean readData) +414
   EPiServer.DataAccess.PageDB.ReadProperty(IDataReader reader, Boolean readTypeName, Boolean readData) +174
   EPiServer.DataAccess.PageDB.LoadUserProperty(PropertyDataCollection propertyColl, IDataReader reader, Boolean readData) +78
   EPiServer.DataAccess.PageListDB.ReadPageList(AbstractCommand cmd) +3104
   EPiServer.DataAccess.<>c__DisplayClass11.<LoadSpecificPages>b__10() +1299
   EPiServer.DataAccess.<>c__DisplayClass1`1.<Execute>b__0() +89
   EPiServer.DataAccess.DatabaseFactory.Execute(Action`1 method) +105
   EPiServer.DataAccess.DataAccessBase.Execute(Action`1 action) +634
   EPiServer.DataAccess.PageListDB.LoadSpecificPages(Int32[] pageLinks) +206
   EPiServer.LocalPageProvider.GetPages(PageReferenceCollection pageReferences, ILanguageSelector selector) +561
   EPiServer.Core.PageProviderBase.GetScatteredPages(PageReferenceCollection pageRefs, ILanguageSelector selector) +726
   EPiServer.Core.PageProviderBase.GetChildren(PageReference pageLink, ILanguageSelector selector, Int32 startIndex, Int32 maxRows) +327
   EPiServer.DataFactory.GetChildren(PageReference pageLink, ILanguageSelector selector, Int32 startIndex, Int32 maxRows) +676
   EPiServer.DataFactory.GetChildren(PageReference pageLink, ILanguageSelector selector) +75
   EPiServer.Web.WebControls.PageDataSource.GetChildrenForLoader(PageReference pageLink) +121
   EPiServer.Web.WebControls.HierarchicalPageLoader.GetFilteredChildren(PageReference pageLink) +113
   EPiServer.Web.WebControls.PageHierarchyData.EnsureChildrenLoaded() +156
   EPiServer.Web.WebControls.PageHierarchyData.get_HasChildren() +108
   EPiServer.UI.WebControls.PageTreeView.PopulateChildNodes(IHierarchicalEnumerable enumerable, Int32 depth, Int32 expandDepth, PageTreeNode parentNode, ArrayList populationPath) +1029
   EPiServer.UI.WebControls.PageTreeView.PopulateChildNodes(IHierarchicalEnumerable enumerable, Int32 depth, Int32 expandDepth, PageTreeNode parentNode, ArrayList populationPath) +1349
   EPiServer.UI.WebControls.PageTreeView.PopulateRecursive(String viewPath) +726
   EPiServer.UI.WebControls.PageTreeView.PerformDataBinding() +302
   System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect() +114
   EPiServer.UI.Edit.PageExplorer.OnLoad(EventArgs e) +1308
   System.Web.UI.Control.LoadRecursive() +66
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Control.LoadRecursive() +191
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428

Any ideas?

#49595
Mar 24, 2011 9:36
Vote:
 

The description sounds like bug #33170 "LinkCollection: Link cannot display if Link title contains special character". The fix for that bug should have been released in CMS6

#49599
Mar 24, 2011 10:00
Vote:
 

Is there any list or something containing exactly which characters that might be?

If i cannot come up with a solution, the least i can do is tell the editors what characters not to use.

 

Edit:
Which part of the XML in the database is causing the error?

In a line like this, from the database:
<a href="http://www.aftonbladet.se/nyheter/article8189551.ab" target="_blank" title=" Fast i kö - ingen tog ansvaret på aftonbladets webbplats">L&#228;s artikeln: &quot;Fast i k&#246; - ingen tog ansvaret&quot;  Aftonbladets webbplats</a>

Would it be the space in the title attribute that causes the error?

 Edit 2:

So, i finally found the error. Link title contained "-characters, whick in EPiServers transformed så every word became a attribute. The title: 'This is "my special" title' becomes title="this is " my="" special=" title" in the database.

At least i can find the error in the database and correct them instead of restoring the database...

#49600
Edited, Mar 24, 2011 10:24
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.