För att göra anrop från en extern klient kan man använda Sharepoints webbtjänster, men vissa av dem är för avancerade för att använda WCF Test Client som hänger med VS 2008/2010 eller Web Service Studio på Codeplex. Nyligen hittade jag ytterligare ett program som heter SharePoint Utilities for Developers (SPUD). I det programmet får man hjälp med att göra en massa saker såsom att bygga och verifiera att CAML är korrekt skriven.
Sist jag hade användning för programmet var när en lista med filer inte kunde hämtas från Sharepoint via GetListItems pga ett illegalt tecken (ascii 15, carriage return). Jag trodde först det var fel på min kod men SPUD visade samma fel. Problemet när jag testade var att felet kastades att den autogenererade asmx-kodklassen som jag inte har någon kontroll över och jag kan inte be Sharepoints webbtjänst att sluta skicka illegala tecken i sin XML…
För att få veta vilket dokument det var som hade det konstiga tecknet laddade jag ner och startade Fiddler2 samt SPUD. Letade sedan upp min lista, högerklickade på den, valde Get List Items, lade in min CAML fråga och körde. Fiddler fångade svaret från Sharepoint och jag kunde se XML-svaret jag fick tillbaka. För att hittade det felaktiga tecknet körde jag W3Validator. Då såg jag vilka tecken som var illegala och kunde lokalisera vilken fil som orsakade felet.
I mitt fall var det metadata på en wordfil som hade _x0015_ i något metadatakommentarsfält. När jag tog bort _x0015_ från kommentaren försvann problemet.
Hur man kan undvika problem i framtiden har jag ingen aning om men just nu fungerar det i alla fall igen! 🙂