2009-06-02 8 views
4

Ich schreibe eine sehr kleine App zum Erstellen und Testen von Caml Queries für Sharepoint. Beim Ausführen der GetListItems-Methode erhalte ich die folgende Ausnahme:Sharepoint Lists.asmx: Die Anfrage ist mit einer leeren Antwort fehlgeschlagen.

System.Net.WebException: "The request failed with an empty response." 

Der Dienst befindet sich auf einer https-Adresse (ssl). Ich habe den Dienst folgendermaßen eingerichtet:

result = new ListService.Lists(); 
result.Url = siteUrl; 
result.Credentials = new NetworkCredential(txtUserName.Text, txtPassword.Text, txtDomain.Text); 

Ich rufe die GetListItems() Methode wie folgt auf;

xmlResult = spList.GetListItems(listName, string.Empty, camlQuery, null, string.Empty, null, string.Empty); 

Ich versuche herauszufinden, warum ich die leere Ergebnisnachricht bekomme. Ich habe auch andere Methoden versucht (z. B. GetListCollection), aber ohne Erfolg.

Zuerst dachte ich, dass das Problem die URL sein könnte (http statt https), aber das ist nicht der Fall. Ich habe es sogar mit wireshark überprüft, um sicherzustellen, dass die richtige URL verwendet wird.

Ist jemand über dieses Problem gekommen und wie haben Sie es gelöst?

+0

Ich habe dieses Problem nicht gelöst, aber ich würde empfehlen, dass Sie ein paar Dinge tun: 1. Test mit GetListCollection(), da es keine Parameter akzeptiert ... manchmal die Semantik der Parameter in SharePoint sind obskur und unterdokumentiert 2. Stellen Sie sicher, dass Sie Fiddler2 auf Ihrem lokalen Computer verwenden, um den Netzwerkverkehr transparent zu erfassen. Es kann so konfiguriert werden, dass der HTTPS-Verkehr überprüft wird. 3. Schließen Sie die SharePoint-Protokollierungsebenen ab. 4. Sehen Sie in den IIS-Zugriffs- und Fehlerprotokollen nach, ob dort etwas angezeigt wird. –

+0

@Mark; Ich habe die GetListCollection() getestet, aber das gab mir auch nichts anderes als ein leeres Ergebnis. – Obelix

Antwort

6

OMG ...! Ich habe es doch gelöst. Nachdem ich diese Frage gepostet habe, habe ich versucht, den wsdl zu checken, der den Dienst selbst überprüft. Als ich es über Internet Explorer überprüft habe, war alles in Ordnung. Als ich versuchte, es als Referenz in VS hinzuzufügen, ging es schief. Also war etwas nicht in Ordnung. Dann ist mir aufgefallen, dass es einen neuen Login-Bildschirm für unser Firmennetzwerk gab.

Nach ein paar kurzen Telefonaten habe ich gelernt, was das Problem war; IT Services installierten einen ISA 2006-Server und "vergessen", es mir zu sagen. Der ISA-Server blockierte den gesamten Verkehr auf dem HTTPS-Port (443) für unbekannte Programme und/oder Clients. Aus diesem Grund hat mir der Internet Explorer einen neuen und glänzenden Login-Dialog geboten.

+4

, aber haben Sie herausgefunden, wie Sie sich über ISA mit Webdiensten verbinden? – SteveCl