גיליתי היום בהם GetList() שיטת ב lists.asmx שירות האינטרנט צריך להיקרא היטב או זה נוטה לזרוק מסתורי "ערך אינו יכול להיות null" יוצא מן הכלל (ואת כל זאת בהנחה שבאפשרותך לקבל אחרי הודעת שגיאה כללית גרוע, "חריגה מסוג ' Microsoft.SharePoint.SoapServer.SoapServerException’ המערכת התריעה.") באופן ספציפי, מצאתי לא יכול לספק כל סוג של קידומת על שיטת GetList. הגזיר jQuery שלהלן ממחיש את הנקודה:
אם תעשי זאת, שירות האינטרנט מגיב עם "ערך אינו יכול להיות null" לפי זה כנר-בתנאי פרוטוקול HTTP:
<?גירסת xml = "1.0" קידוד = "utf-8"?>
<סבון:מעטפה
xmlns:סבון ="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi = "http://www.w3.org/ 2001/סכימת Xml-מופע”
xmlns:xsd ="http://www.w3.org/ 2001/סכימת Xml"><סבון:הגוף>
<סבון:אשמתו>
<faultcode>סבון:שרת</faultcode>
<faultstring>
חריגה מסוג ' Microsoft.SharePoint.SoapServer.SoapServerException’ נזרק.
</faultstring>
<פירוט>
<errorstring xmlns ="http://schemas.microsoft.com/sharepoint/soap/">
ערך אינו יכול להיות null.
</errorstring>
</פירוט>
</סבון:אשמתו>
</סבון:הגוף>
</סבון:מעטפה>
בטח, אתה כנראה לא להוסיף את הקידומת "s0" בכוחות עצמך, אבל כלים מסוימים נוטים לעשות את זה (כמו ליקוי חמה).
זה עוד יותר מבלבל / מתסכל כי שיטות אחרות לסבול קידומות. למשל, את GetListCollection שיטה לא אכפת אם הוא היה קידומת, אפילו עם קידומות שטויות כמו "xyzzy":
זה "ערך אינו יכול להיות null" נראה שכיחה למדי עם lists.asmx כך אני מקווה שזה יעזור למישהו החוצה בעתיד.
</קצה>
עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin
הערה קטנה
. אני חושב שפספסת “s0” קידומת עבור lisname
נסה את זה
משימות