Hari ini saya menemukan bahwa GetList() metode dalam Lists.ASMX Layanan web telah dipanggil sangat hati-hati atau rentan untuk melemparkan misterius pengecualian "Nilai tidak boleh null" (dan itu dengan anggapan Anda dapat melewati lebih buruk pesan kesalahan umum, "Pengecualian jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ dilemparkan.") Khusus, Saya menemukan bahwa Anda tidak dapat menyediakan jenis awalan pada metode GetList. JQuery potongan berikut menggambarkan titik:
Jika Anda melakukannya, Layanan web menanggapi dengan "Nilai tidak boleh null" seperti ini Fiddler-disediakan HTTP transkrip:
<?Versi XML = "1.0" pengkodean = "utf-8"?>
<sabun:Amplop
xmlns:sabun ="http://schemas.xmlsoap.org/SOAP/Envelope/"
xmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd ="http://www.w3.org/ 2001/XMLSchema"><sabun:Tubuh>
<sabun:Kesalahan>
<faultcode>sabun:Server</faultcode>
<faultstring>
Pengecualian jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ terlempar.
</faultstring>
<detail>
<errorstring xmlns ="http://schemas.Microsoft.com/SharePoint/SOAP/">
Nilai tidak boleh null.
</errorstring>
</detail>
</sabun:Kesalahan>
</sabun:Tubuh>
</sabun:Amplop>
Tentu saja, Anda mungkin tidak akan menambahkan awalan "s0" itu sendiri, tetapi beberapa alat cenderung melakukannya (seperti Eclipse).
Ini semua lebih membingungkan / frustrasi karena metode lain mentolerir awalan. Misalnya, The GetListCollection metode tidak keberatan jika itu adalah bahasa, bahkan dengan awalan omong kosong seperti "xyzzy":
Ini "nilai tidak boleh null" tampaknya cukup umum dengan lists.asmx jadi mudah-mudahan ini akan membantu seseorang di masa depan.
</akhir>
Ikuti saya di kegugupan di http://www.twitter.com/pagalvin
Sebuah komentar kecil
Saya berpikir bahwa Anda tidak terjawab “S0” awalan untuk lisname
Coba ini
Tugas