2017-01-31 4 views
0

У меня возникли проблемы с чтением содержимого «TaskAttachment», которое я загрузил с одного расширения на другое.Расширение TFS - Как читать содержимое TaskAttachment

Я использую этот код, чтобы получить «TaskAttachment», я получаю его с правильным именем и URL, (который я получаю доступ к без аутентификации нет, например, из другого чистого браузера)

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); 

... И эта функция Javascript, чтобы прочитать содержимое ...

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.."; 
} 

проблема заключается в том, что я получаю сообщение об ошибке 401: "IIS 7.5 Подробная ошибка - 401.2 - Несанкционированный"

Как я могу прочитать этот файл? Есть ли лучший способ переноса данных из «Расширение этапа сборки» в «Расширение пользовательского интерфейса», которые представляют данные на странице сводки сборки (новая вкладка)?

ответ

0

Я только что удалось прочитать данные вложений с использованием метода «getAttachmentContent»:

я не уверен, почему MS не ставит каких-либо ссылок на эту функцию в учебнике, после того, как долго копаться в документация \ Q & AI нашел это.

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

В соответствии с «Подробной ошибкой IIS 7.5 - 401.2 - Несанкционированный» Скорее всего, это связано с правами доступа к каталогу, установленными в файловой системе.

Убедитесь, что анонимный доступ включен в IIS -> Аутентификация.

Щелкните правой кнопкой мыши по нему, затем нажмите «Изменить» и выберите домен \ имя пользователя и пароль.

Смежные вопросы