Lists.asmx, GetList và "giá trị không thể được null”

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:

image

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":

image

Đ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>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Ai nghĩ về “Lists.asmx, GetList và "giá trị không thể được null”

Để lại câu trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *