Tôi phát hiện ra ngày hôm nay rằng GetList() phương pháp trong lists.asmx Dịch vụ web đã được gọi là rất cẩn thận hoặc nó là dễ bị ném một bí ẩn "Giá trị hiện tại không thể được null" ngoại lệ (và đó giả sử bạn có thể vượt qua các thông báo lỗi chung tồi tệ hơn nữa, "Ngoại lệ của loại ' Microsoft.SharePoint.SoapServer.SoapServerException’ bị văng ra.") Đặc biệt, Tôi thấy rằng bạn không thể cung cấp cho bất kỳ hình thức nào của tiền tố về phương pháp GetList. Đoạn jQuery sau minh họa điểm:
Nếu bạn làm điều đó, Dịch vụ web đáp ứng với "Giá trị không thể được null" theo điều này Fiddler-cung cấp bảng điểm HTTP:
<?Phiên bản XML = "1.0" mã hóa = "utf-8"?>
<xà phòng:Phong bì
xmlns:xà phòng ="http://schemas.xmlsoap.org/Soap/Envelope/"
xmlns:XSi = "http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd ="http://www.w3.org/ 2001/XMLSchema"><xà phòng:Cơ thể>
<xà phòng:Lỗi>
<faultcode>xà phòng:Máy chủ</faultcode>
<faultstring>
Các ngoại lệ của loại ' Microsoft.SharePoint.SoapServer.SoapServerException’ ném.
</faultstring>
<chi tiết>
<errorstring xmlns ="http://schemas.Microsoft.com/SharePoint/Soap/">
Giá trị không thể được null.
</errorstring>
</chi tiết>
</xà phòng:Lỗi>
</xà phòng:Cơ thể>
</xà phòng:Phong bì>
Tất nhiên, bạn có lẽ sẽ không thêm tiền tố "s0" đó ngày của riêng bạn, nhưng một số công cụ có xu hướng để làm điều đó (như Eclipse).
Điều này là khó hiểu tất cả chi tiết / bực bội vì các phương pháp khác chịu đựng tiền tố. Ví dụ, các GetListCollection phương pháp không quan tâm nếu nó được mục, ngay cả với vô nghĩa tiền tố như "xyzzy":
Điều này "giá trị hiện tại không thể được null" có vẻ khá phổ biến với lists.asmx để hy vọng điều này sẽ giúp đỡ người ra trong tương lai.
</kết thúc>
Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin
Một bình luận nhỏ
Tôi nghĩ rằng bạn mất “S0” tiền tố cho lisname
Hãy thử này
Nhiệm vụ