2017-02-21 1 views
1

blob을 컨테이너에 복사 할 때 트리거되는 Azure 함수가 있습니다. 이 함수는 blob을 성공적으로 하위 폴더에 복사하여 처리하지만 파이프 라인 일정을 변경하여 파이프 라인이 실행되도록합니다. 그러나 코드에서 파이프 라인 일정을 변경하려고하면 다음 오류가 발생합니다.파이프 라인을 업데이트 할 때 Azure 함수에서 dll 오류가 누락되었습니다.

파일 또는 어셈블리 'Microsoft.Threading.Tasks, Version = 1.0.12.0, Culture = neutral ...을로드 할 수 없습니다. 또는 종속성 중 하나가 될 수 있습니다. 시스템이 지정된 파일을 찾을 수 없습니다.

나는 사용되지 않는 패키지를 제거하고 최신 버전을 사용하고 있는지 확인하기 위해 nuget 패키지 목록을 검토했습니다. 나는 또한 내 csx 파일에서 불필요한 사용에 대해 언급했지만 아직 오류가 발생합니다. 파이프 라인 업데이트 호출을 주석 처리하면 오류가 사라지고 함수가 끝까지 실행됩니다. 에,

{ 
 
    "frameworks": { 
 
    "net46": { 
 
     "dependencies": { 
 
     ////"Hyak.Common": "1.1.0", 
 
     "Microsoft.Azure.Common": "2.1.0", 
 
     "Microsoft.Azure.Common.Dependencies": "1.0.0", 
 
     "Microsoft.Azure.Management.DataFactories": "4.11.0", 
 
     ////"Microsoft.Bcl": "1.1.10", 
 
     ////"Microsoft.Bcl.Async": "1.0.168", 
 
     ////"Microsoft.Bcl.Build": "1.0.21", 
 
     "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.8" 
 
     ////"Microsoft.Net.Http": "2.2.29" 
 
     } 
 
    } 
 
    } 
 
}

마지막 :

내 project.json 파일 (내가 이전에 시도했다 다른 패키지를 보여주기 위해 패키지를 주석으로 포함 시켰하지 않는 것이) 다음과 같습니다

#r "System.Runtime" 
 
#r "System.Threading.Tasks" 
 
#r "Microsoft.WindowsAzure.Storage" 
 

 
using System; 
 
using System.Net; 
 
using System.Threading.Tasks; 
 
using System.Configuration; 
 
//using Newtonsoft.Json; 
 
using Microsoft.Azure; 
 
//using Microsoft.Azure.Common; 
 
using Microsoft.Azure.Management.DataFactories; 
 
using Microsoft.Azure.Management.DataFactories.Models; 
 
using Microsoft.IdentityModel.Clients.ActiveDirectory; 
 
using Microsoft.WindowsAzure.Storage; 
 
using Microsoft.WindowsAzure.Storage.Blob;
(다시 주석 라인 포함)을 다음과 같이 CSX 파일, 내 using이 있습니다 다음과 같이 6,

파이프 라인을 업데이트하는 코드는 다음과 같습니다

client.Pipelines.CreateOrUpdate(resourceGroupName, dataFactoryName, new PipelineCreateOrUpdateParameters() 
    { 
     Pipeline = pl.Pipeline 
    }); 

    log.Info($"Pipeline rescheduled for {slice}"); 

나는 파이프 라인 업데이트 작업 (Microsoft.Threading.Tasks 등 여러 참조를 포함) 콘솔 응용 프로그램/웹 응용 프로그램으로 이것을 실행하는 경우 정확하게하지만 Azure 함수에서 동일한 코드가 작동하지 않습니다.

누드 패키지/버전 또는 누락 된 참조가 누구인지 아는 사람 있습니까?

+0

스티븐, 나는이 문제를 조사하기 위해 생식에 일 것이다. GitHub 레포에서 공유 할 수있는 간단한 레트로가 있다면 도움이 될 것입니다. –

+0

안녕하세요 Fabio, 다음 저장소를 만들었습니다 @ [link] (https://github.com/StevenEnticknap/AzureFunction). 당신의 도움을 주셔서 감사합니다 –

답변

1

이 문제는 .Net (예 : 4.6보다는 4.5)의 이전 버전을 참조하는 project.lock.json 파일 때문에 발생했습니다. 4.6으로 업데이트하면 문제가 해결되었습니다. 다음과 같이

완성도를 들어, project.lock.json 파일은 이제 읽

{ 
 
    "locked": false, 
 
    "version": 2, 
 
    "targets": { 
 
    ".NETFramework,Version=v4.6": {} 
 
    }, 
 
    "libraries": {}, 
 
    "projectFileDependencyGroups": { 
 
    "": [], 
 
    ".NETFramework,Version=v4.6": [] 
 
    } 
 
}

관련 문제