Ich habe 2 Sharepoint 2013 Websites. Wenn Benutzer ein neues Element in SPList beim ersten SPSite -> Start-Workflow hinzufügen, muss die Kopie des Elements in SPList auf der zweiten SPSite hinzugefügt werden. Dies ist mein Code:Schreiben Sie auf andere Sharepoint-Website mit Webserivces
public void UpdateSPList(string Title)
{
using (AuthenticationSvc.Authentication authSvc = new AuthenticationSvc.Authentication())
{
try
{
using (ListsSvc.Lists list = new ListsSvc.Lists())
{
list.Url = @"http://second-srharepoint-site.com/_vti_bin/Lists.asmx";
list.CookieContainer = new System.Net.CookieContainer();
list.AllowAutoRedirect = true;
list.PreAuthenticate = true;
list.Credentials = new System.Net.NetworkCredential("domain\\username", "password");
string strBatch = "<Method Cmd='New'><Field Name='Title'>" + Title + "</Field> ";
XmlDocument xmlDoc = new XmlDocument();
XmlElement elBatch = xmlDoc.CreateElement("Batch");
elBatch.SetAttribute("OnError", "Continue");
elBatch.InnerXml = strBatch;
XmlNode ndReturn = list.UpdateListItems("SPListName", elBatch);
}
}
finally
{
}
}
}
Aber auf der Leitung elBatch.InnerXml = strBatch;
ich Ausnahme:
- $exception {"Unexpected end of file has occurred. The following elements are not closed: Method. Line 1, position 60."} System.Exception {System.Xml.XmlException}
Ich weiß nicht, wie dieses Problem zu beheben. Hilf mir bitte.
Die XML-Zeichenfolge ist ungültig. Sie müssen Abschlusselemente für * alle * Elemente hinzufügen, nicht nur die letzten –
Warum verwenden Sie CSOM nicht trotzdem? Sie können die Eigenschaft Name Title einfach wie bei jedem anderen ORM- oder OData-Client aktualisieren. Die asmx-Webdienste wurden im Jahr 2010 nicht weiter unterstützt. Daher ist Ihr Code per Definition problematisch. –
Ich weiß nicht, wie es besser geht. – DisguisePerceptron