Lists.asmx, GetList og "verdi kan ikke være null”

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:

image

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":

image

Dette "verdi ikke kan være null" synes ganske vanlig med lists.asmx så forhåpentligvis vil dette hjelpe noen ut i fremtiden.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

En tenkte på “Lists.asmx, GetList og "verdi kan ikke være null”

Avreise en svar til PVA Avbryt svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *