Lists.asmx, GetList en "waarde kan niet null”

Ik ontdekte vandaag dat de GetList() methode in lists.asmx web-service moet zeer zorgvuldig worden genoemd of het is gevoelig voor het gooien van een mysterieuze "Waarde null kan niet" uitzondering (en dat de veronderstelling dat kunt u voorbij het nog erger algemene foutbericht, "Uitzondering van het type ' Microsoft.SharePoint.SoapServer.SoapServerException’ werd gegooid.")  Specifiek, Ik vond dat u niet elke vorm van voorvoegsel te op de GetList-methode verstrekken.  De volgende jQuery fragment illustreert het punt:

image

Als u dat doen, de webservice reageert met "Waarde kan niet null" als per dit Fiddler-geboden HTTP transcript:

<?XML version = "1.0" encoding = "utf-8"?>
  <zeep:Envelop
     xmlns:zeep ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <zeep:Lichaam>
    <zeep:Schuld>
      <FaultCode>zeep:Server</FaultCode>
      <FaultString>
        Uitzondering van het type ' Microsoft.SharePoint.SoapServer.SoapServerException’ werd gegooid.
      </FaultString>
      <detail>
        <ErrorString xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Waarde kan niet null.
        </ErrorString>
      </detail>
    </zeep:Schuld>
  </zeep:Lichaam>
</zeep:Envelop>

Natuurlijk, u niet zou waarschijnlijk toevoegen dat "s0" voorvoegsel op uw eigen, maar sommige tools zijn geneigd om het te doen (zoals Eclipse).

Dit is des te meer verwarrend / frustrerend omdat andere methoden voorvoegsels tolereren.  Bijvoorbeeld, de GetListCollection methode erg niet als het wordt zijn voorafgegaan, zelfs met onzin voorvoegsels zoals "xyzzy":

image

Dit "waarde null kan niet" lijkt vrij algemeen met lists.asmx dus hopelijk dit iemand uit in de toekomst helpen zal.

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Een gedachte over "Lists.asmx, GetList en "waarde kan niet null”

Laat een antwoord achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *