This project is read-only.

SLAM'ing fields with country specific characters in field name

May 11, 2009 at 9:17 AM
Edited May 11, 2009 at 9:44 AM

Hello again,

I'm getting an error on one site collection if I open the SLAM config page:

System.TypeInitializationException: Der Typeninitialisierer für "AWS.SLAM.ComponentService" hat eine Ausnahme verursacht. ---> System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.Xml.XmlException: Ungültiges Zeichen in der angegebenen Codierung. Zeile 10, Position 43. bei System.Xml.XmlTextReaderImpl.Throw(Exception e) bei System.Xml.XmlTextReaderImpl.InvalidCharRecovery(Int32& bytesCount, Int32& charsCount) bei System.Xml.XmlTextReaderImpl.GetChars(Int32 maxCharsCount) bei System.Xml.XmlTextReaderImpl.ReadData() bei System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr) bei System.Xml.XmlTextReaderImpl.ParseAttributes() bei System.Xml.XmlTextReaderImpl.ParseElement() bei System.Xml.XmlTextReaderImpl.ParseElementContent() bei System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r) bei System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o) bei System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options) bei System.Xml.Linq.XDocument.Load(String uri, LoadOptions options) bei AWS.SLAM.Configuration.XmlConfigurationManager..ctor() bei AWS.SLAM.StructureMap.SLAMRegistry.configure() bei AWS.SLAM.StructureMap.SLAMRegistry..ctor() bei AWS.SLAM.StructureMap.ComponentFactory.Initialize() --- Ende der internen Ausnahmestapelüberwachung --- bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) bei System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) bei System.Activator.CreateInstance(Type type, Boolean nonPublic) bei AWS.SLAM.ComponentService..cctor() --- Ende der internen Ausnahmestapelüberwachung --- bei AWS.SLAM.ComponentService.ClearInstances() bei AWS.SLAM.Administration.SLAMControlPanel.Page_Load(Object sender, EventArgs e)

At the marked location ( Zeile 10, Position 43 => row 10 position 43) is a german special charachter ("ö") . Is this a problem due to the UTF-8 encoding? If so ... can I solve it by changing the encoding?

Edit: Sorry, I forgot to add that the list was successfully mapped and sync'ed a couple of days ago. The error just showed up this morning. Message log and event log tables have no entries on the above error message.

Edit #2: I think I'm a bit stupid this monday morning :-( ... I removed the list from slam.config but the error persists. So obviously it's not related to a special character in the field name. I repaired SLAM installation but that did not solve it as well. Can someone move this topic to the issue tracker please? Sorry for the inconvenience.

Thanks a lot for your efforts

Best regards

Silmarin

Developer
May 11, 2009 at 3:59 PM

Can I see your slam.config?  You say it's on one site collection, if you have many site collections configured are other lists working from that site collection (when you save etc is SLAM updating)?  I can only assume it's a parsing error, even if not caused by the ö. 

-Brian

May 12, 2009 at 6:13 AM
Edited May 12, 2009 at 6:15 AM

Hello Brian,

yes - the SLAM'ing on other site collections in this farm works fine. Here's my slam.config from inetpub\wwwroot\wss\virtualdirecotries\<site>:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
  <ConnectionStrings Default="SLAM">
    <add Name="SLAM" ConnectionString="Database=<database>;Data Source=<server>;User Id=<login>;Password=<password>:" />
  </ConnectionStrings>

  <DataMapping DataSchema="SLAM">
    <List Site="kompetenzcenter/it" Name="Umfrage" ActivationOrder="1">
      <Fields>
        <Field Name="Wurde Ihr Problem gelöst?" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="War der Servicemitarbeiter pünktlich?" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Wie bewerten Sie das Auftreten des Servicemitarbeiters?" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Wie bewerten Sie die benötigte Zeitspanne (Dauer) zwischen Ihrer Problemmeldung bis zur Problemlösung durch den Servicemitarbeiter?" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Möchsten Sie uns noch etwas mitteilen?" SqlType="ntext" SPType="Text" Required="false"></Field>
        <Field Name="Created" SqlType="datetime" SPType="datetime" Required="false"></Field>
        <Field Name="Author" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
 <Field Name="ItemID" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
 <Field Name="ItemType" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
      </Fields>
    </List>
    <List Site="kompetenzcenter/technik" Name="Zertifikate" ActivationOrder="2">
      <Fields>
        <Field Name="Titel" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Region" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Zustand" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Verantwortlicher" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Created" SqlType="datetime" SPType="datetime" Required="false"></Field>
        <Field Name="Editor" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Author" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
      </Fields>
    </List>
    <List Site="kompetenzcenter/referenzen" Name="Referenzfolien" ActivationOrder="3">
      <Fields>
        <Field Name="Referenzobjekt" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Titel" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Region" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Sparte" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Standort" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Kunde" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Kategorie" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Created" SqlType="datetime" SPType="datetime" Required="false"></Field>
        <Field Name="Modified" SqlType="datetime" SPType="datetime" Required="false"></Field>
        <Field Name="Editor" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="Author" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
      </Fields>
    </List>
  </DataMapping>
</Configuration>

I hope that helps. Thanks again for your efforts.

Best regards

Silmarin

Developer
May 12, 2009 at 6:42 AM

OK.  I copied your config and just tried to load it, just to see if it's a parsing error and clearly it is.  I changed the encoding to ISO-8859-1 and I no longer got the error (I actually changed the ö to o on my end and I saw the position change where it said 10, 43 to the next line).  I cannot say why it doesn't work in this instance for you and it does in others, but you may need to change the encoding after all.  Hopefully that resolves your issue.

Thanks,

-Brian

May 12, 2009 at 6:49 AM

Thanks for the advice Brian. I changed the encoding and did an iisreset /noforce and the error is gone :).

Best regards

Silmarin