Ho scoperto oggi che la GetList() Metodo in lists.asmx servizio Web deve essere chiamato con molta attenzione, o è incline a generare un misterioso "Valore non può essere null" eccezione (e che sta assumendo che si può andare oltre il messaggio di errore generico anche peggio, "Eccezione di tipo ' SoapServerException’ è stato gettato.") In particolare, Ho trovato che è non può fornire qualsiasi tipo di prefisso del metodo GetList. Il seguente frammento di jQuery illustra il punto:
Se lo fai, il servizio web risponde con "Valore non può essere null" come per questo violinista-fornito di trascrizione HTTP:
<?XML version = "1.0" Encoding = "utf-8"?>
<sapone:Busta
xmlns:sapone ="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance”
xmlns:XSD ="http://www.w3.org/2001/XMLSchema"><sapone:Corpo>
<sapone:Colpa>
<FaultCode>sapone:Server</FaultCode>
<FaultString>
Eccezione di tipo ' SoapServerException’ è stato gettato.
</FaultString>
<dettaglio>
<ErrorString xmlns ="http://schemas.Microsoft.com/SharePoint/SOAP/">
Valore non può essere null.
</ErrorString>
</dettaglio>
</sapone:Colpa>
</sapone:Corpo>
</sapone:Busta>
Naturalmente, è probabilmente non sarebbe aggiungere tale prefisso "s0" sul proprio, ma alcuni strumenti sono inclini a farlo (come eclissi).
Questo è ancora più confuso / frustrante perché altri metodi tollerano i prefissi. Per esempio, il GetListCollection Metodo non mente se esso è stato preceduto da, anche con i prefissi di sciocchezze come "xyzzy":
Questo "valore non può essere null" sembra piuttosto comune con lists.asmx quindi speriamo questo aiuterà qualcuno fuori in futuro.
</fine>
Seguimi su Twitter a http://www.twitter.com/pagalvin
Un piccolo commento
Penso che vi siete persi “S0” prefisso per lisname
Provate questo
Compiti