Jeg oppdaget i dag som GetList() metoden i lists.asmx webtjenesten har å bli kalt veldig nøye, eller det er utsatt for å kaste en mystisk "Verdi kan ikke være null"-unntak (og som er forutsatt du kan komme forbi enda verre generisk feilmelding, "Unntak av typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ ble kastet.") Spesielt, Jeg fant ut at du ikke kan tilby noen form for prefiks i GetList-metoden. Følgende jQuery snippeten illustrerer poenget:
Hvis du gjøre det, Webtjenesten svarer med "Verdi kan ikke være null" i henhold til dette Fiddler-gitt HTTP transkripsjon:
<?XML version = "1.0" Encoding = "utf-8"?>
<såpe:Konvolutt
xmlns:SOAP ="http://schemas.xmlsoap.org/SOAP/Envelope/"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance”
xmlns:XSD ="http://www.w3.org/2001/XMLSchema"><såpe:Kroppen>
<såpe:Feilårsak>
<faultcode>såpe:Server</faultcode>
<faultString:>
Unntak av typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ ble kastet.
</faultString:>
<detalj>
<xmlns errorString ="http://schemas.Microsoft.com/SharePoint/SOAP/">
Verdien kan ikke være null.
</errorString>
</detalj>
</såpe:Feilårsak>
</såpe:Kroppen>
</såpe:Konvolutt>
selvfølgelig, du vil ikke sannsynligvis legge prefikset "s0" på egen hånd, men noen verktøy er tilbøyelig til å gjøre det. (som Eclipse).
Dette er alle mer forvirrende / frustrerende fordi andre metoder tolerere prefikser. For eksempel, den GetListCollection metoden oppmerksom ikke på hvis det er blitt prefikset, selv med tull prefikser som "xyzzy":
Dette "verdi ikke kan være null" synes ganske vanlig med lists.asmx så forhåpentligvis vil dette hjelpe noen ut i fremtiden.
</slutten>
Følg meg på Twitter på http://www.twitter.com/pagalvin
En liten kommentar
Jeg tror at du savnet “S0” prefiks for lisname
Prøv dette
Oppgaver