2010-12-06 7 views
7

Ich bin das SP2010-Client Object Model in eine Dokumentbibliothek zu laden, nach dem Vorbild von Microsoft hier: http://msdn.microsoft.com/en-us/library/ee956524.aspx#SP2010ClientOMOpenXml_UploadingSharepoint 2010-Clientobjektmodell - Dokument hochladen (409 Conflict)

Ich bin ein HTTP-409 Verblendung (Conflict) Statuscode beim Ausführen des folgenden Codes.

var clientContext = new ClientContext("http://myservername/sites/subsitename") { Credentials = LogonCredentials }; 
using (var fileStream = new FileStream(@"C:\Temp\Test.txt", FileMode.Open)) 
{ 
     Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, "/MyDocLibraryName/Test_FromClientOM.txt", fileStream, true); 
} 

Was mache ich falsch?

Antwort

8

Das Problem hier war, dass die Website, die ich hochladen, eine Unterwebsite ist, nicht die Wurzel von Sharepoint. Ich weiß nicht, ob dies eine "Design" -Auswahl war oder nicht, aber es scheint, dass Sie zumindest in diesem speziellen Fall die Wurzel des Sharepoint für den ClientContext verwenden müssen.

Arbeitscode:

var clientContext = new ClientContext("http://myservername") { Credentials = LogonCredentials }; 
using (var fileStream = new FileStream(@"C:\Temp\Test.txt", FileMode.Open)) 
{ 
     Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, "/sites/subsitename/MyDocLibraryName/Test_FromClientOM.txt", fileStream, true); 
} 
5

ich auch einen 409-Fehler konfrontiert wurde beim Versuch, eine Datei über das Sharepoint 2010-Clientobjektmodell zu laden. Stellen Sie absolut sicher, dass der Pfad, unter dem Sie die Datei hochladen, vollständig ist. Der Anruf erstellt keine (Unter-) Ordner. Es spielt keine Rolle, ob Sie Ihren ClientContext mit dem Root-Unterweb oder direkt mit der Unterwebsite verbinden, wie Sie es nennen. Stellen Sie nur sicher, dass Sie immer die SaveBinaryDirect-Methode mit der SPSite-relativen URL des zu übergebenden Ortes versehen.

Zum Beispiel, wenn Sie Ihre Clientcontext zu http://somesite/sites/subsitename sich verbinden, stellen Sie sicher, dass Sie die Zeichenfolge /sites/subsitename/documents/filename.txt zu SaveBinaryDirect auch vorbei sind, so in Bezug auf die SPSite und nicht die Subsite du bist Verbindung zur Verwendung Ihres ClientContext.