7 Stimmen

Wie kopiert man eine Datei in SharePoint mit Hilfe eines WebService?

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X