Lists.asmx, GetList og "Value getur ekki verið tómt”

Ég uppgötvaði í dag að GetList() aðferð í lists.asmx vefur þjónusta þarf að vera kölluð mjög vel eða það er viðkvæmt að kasta dularfulla "Value getur ekki verið tómt" undantekning (og það er miðað við að þú getur fengið framhjá jafnvel verri almenna villuboð, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ var kastað. ")  Sérstaklega, Ég fann að þú getur ekki veita hvers konar forskeyti á GetList aðferð.  Eftirfarandi jQuery seðillinn sýnir punkt:

image

Ef þú gerir það, vefur þjónusta bregst við "Value getur ekki verið tómt" eins og á þessu Fiddler-enda HTTP afrit:

<?XML útgáfa = "1,0" kóðun = "UTF-8"?>
  <sápa:Umslag
     xmlns:sápa ="
HTTP://schemas.xmlsoap.org / sápu / umslag /"    
     xmlns:XSi = "
HTTP://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd ="
HTTP://www.w3.org/2001/XMLSchema">

  <sápa:Body>
    <sápa:Kenna>
      <faultcode>sápa:Server</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ var kastað.
      </faultstring>
      <smáatriði>
        <errorstring xmlns ="
HTTP://schemas.microsoft.com / SharePoint / sápu /">
Gildi getur ekki verið tómt.
        </errorstring>
      </smáatriði>
    </sápa:Kenna>
  </sápa:Body>
</sápa:Umslag>

Auðvitað, þú myndi sennilega ekki bæta við að "s0" forskeyti á eigin spýtur, en sumir verkfæri eru tilhneigingu til að gera það (eins og Eclipse).

Þetta er allt meira truflandi / svekkjandi vegna þess að aðrar aðferðir þola forskeyti.  Til dæmis, á GetListCollection aðferð ekki huga ef að það hefur verið bætt viðfyrir framan, jafnvel með óskiljanlegum forskeyti eins og "xyzzy":

image

Þetta "gildi getur ekki verið tómt" virðist nokkuð algengt með lists.asmx svo vonandi mun þetta hjálpa einhverjum í framtíðinni.

</enda>

Gerast áskrifandi að bloggið mitt.

Fylgdu mér á Twitter á http://www.twitter.com/pagalvin

Ein hugsun um „Lists.asmx, GetList og "Value getur ekki verið tómt”

Leyfi svar við PVA Hætta við svar

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *