Feedback

C# - SharePoint Webservice asynchron aufrufen

Veröffentlicht von am 12/3/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.
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!