Feedback

C# - SharePoint Webservice asynchron aufrufen

Veröffentlicht von am 03.12.2013
(0 Bewertungen)
Da ich selbst sehr lange Probleme hatte einen SharePoint Webservice von einem Client (nicht direkt vom SharePoint Server) aufzurufen habe ich mich entschieden meinen letztendlich entstandenen Code zu veröffentlichen.

Dieser Ablauf kann nur Asynchron aufgerufen werden (z.B.: in Windows Store Apps)

Zusätzlich muss dem Projekt ein Dienstverweis als "Service Reference" hinzugefügt werden, der auf den Webservice referenziert und somit in unserem Fall die Klasse "WebServiceKantine" bereitstellt.

PS: Seid nicht so böse mit mir wenn ihr Rechtschreibfehler findet oder wenn man den Code besser gestalten könnte. Ich bin nicht der Ober-C#-Guru ... Ich will hier nur anderen Helfen, die vielleicht vor dem gleichem Problem stehen.
GFU-Schulungen  [Anzeige]

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

using System.ServiceModel;
using System.Xml;
using System.Xml.Linq;
using System.Text.RegularExpressions;
using Windows.UI.Popups;

.
.
.

async void get_Data_from_Webservice()
        {
            BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
            basicHttpBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
            basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
            basicHttpBinding.MaxReceivedMessageSize = 5000000;
            basicHttpBinding.OpenTimeout = new TimeSpan(1, 0, 0);
            basicHttpBinding.CloseTimeout = new TimeSpan(1, 0, 0);
            basicHttpBinding.SendTimeout = new TimeSpan(1, 0, 0);
            basicHttpBinding.ReceiveTimeout = new TimeSpan(1, 0, 0);

            EndpointAddress endpoint = new EndpointAddress("http://sharepoin.server.name/[Pfad]/[zur]/[Websitesammlung]/_vti_bin/lists.asmx");
            string listName = "{1298a7bb-f811-45e3-9db0-9884e79610b8}"; //GUID der Liste
            string viewName = "{091791D1-4A6D-4402-8E7A-AB10BFF6C6A2}"; //GUID des Views
            string rowLimit = "25";                                     //Maximale Trefferanzahl

            XElement ndQuery = new XElement("Query");
            XElement ndViewFields = new XElement("ViewFields");
            XElement ndQueryOptions = new XElement("QueryOptions");

            WebServiceKantine.ListsSoapClient client = new WebServiceKantine.ListsSoapClient(basicHttpBinding, endpoint);
            client.ClientCredentials.Windows.ClientCredential = (System.Net.NetworkCredential)System.Net.CredentialCache.DefaultCredentials;
            client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;                        //Das Ergebnis in Form eines XML Streams
            WebServiceKantine.GetListItemsResponse response = await client.GetListItemsAsync(listName, viewName, ndQuery, ndViewFields, rowLimit, ndQueryOptions, null);
        }

Abgelegt unter C#, Webservice, SharePoint, XML, Request, Response.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!