É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:
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":
Þ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
A small comment
I think that you missed “s0” prefix for lisname
reyna þetta
Tasks