2017-01-31 5 views
0

Ich habe Probleme beim Lesen des Inhalts einer "TaskAttachment", die ich von einer Erweiterung in eine andere hochgeladen habe.TFS-Erweiterung - So lesen Sie den TaskAttachment-Inhalt

ich diesen Code bin mit dem „TaskAttachment“ zu bekommen, erhalte ich es mit dem richtigen Namen und die URL, (was ich ohne ja Authentifizierung muß Zugang erhalten, zum Beispiel von einem anderen sauberen Browser)

var taskClient = DT_Client.getClient(); 
taskClient.getPlanAttachments(vsoContext.project.id, "build", build.orchestrationPlan.planId, "MyExtType").then((taskAttachments) => { 
$.each(taskAttachments, (index, taskAttachment) => { 
    if (taskAttachment._links && taskAttachment._links.self && taskAttachment._links.self.href) { 
     var link = taskAttachment._links.self.href; 
     var attachmentName = taskAttachment.name; 
     var fileContent = readText(link); 

... Und diese Javascript-Funktion, um den Inhalt ...

var readText = function readTextFile(file) 
{ 
alert("file = " + file); 
var rawFile = new XMLHttpRequest(); 
rawFile.open("GET", file, false); 
rawFile.onreadystatechange = function() 
{ 
    alert("rawFile.readyState = " + rawFile.readyState); 
    alert("rawFile.status = " + rawFile.status); 
    alert("rawFile.responseText = " + rawFile.responseText); 

    if(rawFile.readyState === 4) 
    { 

     if(rawFile.status === 200 || rawFile.status == 0) 
     { 
      var allText = rawFile.responseText; 
      alert(allText); 
      return allText; 
     } 
    } 
} 
rawFile.send(null); 
return "Failed to get data.."; 
} 

Das Problem zu lesen ist, dass ich 401-Fehlermeldung bekommen: "IIS 7.5 Detaillierter Fehler - 401.2 - Nicht autorisiert"

Wie kann ich diesen Dateiinhalt lesen? Gibt es eine bessere Möglichkeit, Daten von einer "Build Step Extension" zu einer "UI Extension" zu übertragen, die die Daten auf der Build Summary-Seite (neue Registerkarte) darstellt?

Antwort

0

Ich schaffte es nur die Anlagedaten zu lesen, die „getAttachmentContent“ Methode:

Ich bin nicht sicher, warum MS keinen Hinweis auf diese Funktion im Tutorial gestellt hat, nach langem in den Graben Dokumentation \ Q & AI hat es gefunden.

taskClient.getPlanAttachments(vsoContext.project.id, "build", build.orchestrationPlan.planId, "My_Attachment_Type").then((taskAttachments) => { 

        $.each(taskAttachments, (index, taskAttachment) => { 

         if (taskAttachment._links && taskAttachment._links.self && taskAttachment._links.self.href) { 

         var recId = taskAttachment.recordId; 
         var timelineId = taskAttachment.timelineId; 

         taskClient.getAttachmentContent(vsoContext.project.id, "build", build.orchestrationPlan.planId,timelineId,recId,"My_Attachment_Type",taskAttachment.name).then((attachementContent)=> { 

           function arrayBufferToString(buffer){ 
           var arr = new Uint8Array(buffer); 
           var str = String.fromCharCode.apply(String, arr); 
           return str; 
          } 

          var data = arrayBufferToString(attachementContent); 
0

Laut "IIS 7.5 Detaillierter Fehler - 401.2 - Nicht autorisiert" Es ist wahrscheinlich aufgrund von Verzeichnisberechtigungen im Dateisystem festgelegt.

Stellen Sie sicher, dass der anonyme Zugriff auf IIS -> Authentifizierung aktiviert ist.

Klicken Sie mit der rechten Maustaste darauf, klicken Sie dann auf Bearbeiten und wählen Sie eine Domäne \ Benutzername und ein Kennwort aus.

Verwandte Themen