Ich schreibe eine Winforms c# 2.0-Anwendung, die eine XML-Datei in eine Dokumentbibliothek auf SharePoint setzen muss.
Ich möchte einen WebService anstelle des Objektmodells verwenden (keine sharepoint.dll, auf die hier verwiesen wird)
Ich verwende derzeit die http://webserver/site/_vti_bin/copy.asmx Webservice.
Hier ist etwas Code:
byte[] xmlByteArray;
using (MemoryStream memoryStream = new MemoryStream())
{
xmlDocument.Save(memoryStream);
xmlBytes = memoryStream.ToArray();
}
string[] destinationUrlArray = new string[] {"http://webserver/site/Doclib/UploadedDocument.xml"};
FieldInformation fieldInfo = new FieldInformation();
FieldInformation[] fields = { fieldInfo };
CopyResult[] resultsArray;
using (Copy copyService = new Copy())
{
copyService.Credentials = CredentialCache.DefaultCredentials;
copyService.Url = "http://webserver/site/_vti_bin/copy.asmx";
copyService.Timeout = 600000;
uint documentId = copyService.CopyIntoItems("", destinationUrlArray, fields, xmlByteArray, out resultsArray);
}
Wenn dieser Code ausgeführt wird, erhalte ich ein einzelnes Ergebnis im Parameter resultsArray out:
DestinationURL: "http://webserver/site/Doclib/UploadedDocument.xml"
ErrorCode: UnKnown
ErrorMessage: "Object reference not set to an instance of an object."
Bei meinen Recherchen habe ich ein paar mögliche Hilfen gefunden.
-
Microsoft TechNet -- "Die copy.asmx copyintoitems funktioniert nur, wenn die Quell- und Ziel-URLs in der gleichen SPWebApplication (Site Collection) sind."
-
Microsoft Soziales -- "Objektreferenz nicht auf eine Instanz eines Objekts gesetzt Der Fehler tritt auf, weil SharePoint diese bestimmte Eigenschaft nicht identifizieren kann."
Dies führt mich zu der Annahme, dass meine Quell-URL auf etwas eingestellt werden sollte, aber was? Dies kommt von einer Client-Workstation und hat keine Quell-URL.
Für jede Hilfe wäre ich dankbar.
Vielen Dank,
Keith