2017-12-12 5 views
0

Meine Frage ist Sharepoint online. In meinem Projekt möchte ich den Listeneintrag mit seinen Versionen herunterladen. Ich kann die aktuelle Version des Listenelements herunterladen, kann aber die Version nicht herunterladen. Ich habe this answer verwiesen, die zeigt, wie die kanonischen und die Revisionspfade berechnet werden. Aber beim Abrufen der Daten erhalte ich Fehler alsWie kann ich die Listenversion herunterladen

Der Remote-Server hat einen Fehler zurückgegeben: (403) verboten.

und als Antwort Header Wert als "Zugriff verweigert. Vor dem Öffnen von Dateien an diesem Speicherort% 2c müssen Sie zuerst auf die Website navigieren und wählen Sie die Option zur automatischen Anmeldung."

string url = "https://test.sharepoint.com/teams/Mycompany"; 
ScureString f_SecurePass = new SecureString(); 
foreach (char ch in password) 
    f_SecurePass.AppendChar(ch); 

clientcontext = new ClientContext(url); 
var credentials = new SharePointOnlineCredentials(userid, f_SecurePass);     
clientcontext.Credentials = credentials; 
Web web = clientcontext.Web; 
clientcontext.Load(web, website => website.Lists); 
clientcontext.ExecuteQuery(); 

CamlQuery camlQ = new CamlQuery();        
camlQ.ViewXml = "<View><Query><Where><Geq><FieldRef Name='ID'/>" + 
        "<Value Type='Number'>0</Value></Geq></Where></Query><RowLimit>100</RowLimit></View>"; 

var cq = _list.GetItems(camlQ); 
clientcontext.Load(cq, items => items.Include(item => item.Id, 
       item=>item.EffectiveBasePermissionsForUI, 
       item=>item.EffectiveBasePermissions)); 

clientcontext.ExecuteQuery(); 

var itm = _list.GetItemById(itemid); 
clientcontext.Load(itm, r => r.Id, r => r.DisplayName); 
clientcontext.ExecuteQuery(); 


foreach (FileVersion itemVersion in itm.File.Versions) 
{ 
    int size = itemVersion.Size; 
    string versionlbl = itemVersion.VersionLabel; 
    string newversion = url + itemVersion.Url; 
    System.WebClient client = new System.Net.WebClient(); 
    client.Credentials = new NetworkCredential(userid, f_SecurePass); 
    System.IO.Stream Data = client.OpenRead(newversion);// Throws exception 
} 

Wie kann ich die Listenversion herunterladen?

UPDATE: Wenn ich versuche, von Dateiversion zum Download

mit

File.OpenBinaryDirect (Clientcontext, newversion); es wirft folgende Fehler

Message = "angegebenes Argument aus dem Bereich der gültigen Werte waren \ r \ nParameter Name:. ServerRelativeUrl"

+0

Es hängt von der Version der Datei Für V1.0 https://test.sharepoint.com/teams/Mycompany/_vti_history/512/Shared Dokumente/MY CODE.docx – Mayuresh

Antwort

Verwandte Themen