2017-01-26 2 views
1

저는 .NET 코어 인 2 개의 프로젝트를 가지고 있습니다. 스키마, 모델, 명령, 쿼리 등을 정의하는 인프라 프로젝트 및 데이터를 처리 할 끝점/컨트롤러로 구성된 API 전체 설정은 데이터베이스가 Azure SQL 인 Azure에 있습니다.Azure Queue Storage WebJob with .NET 코어

시스템은 분석 용이므로 전체 설정은 읽기 전용 API를 기반으로하며 그 중 무엇을 기반으로하지 않습니다. 그러나 분명히 데이터베이스에 데이터를 삽입해야합니다. 데이터는 내 환경의 소프트웨어에서 가져온 것이므로 내 생각은 Azure Queue에서 페이로드를 받고, NewtonSoft JSON을 사용하여 내 모델을 채우고 데이터베이스에 삽입하는 WebJob을 만드는 것이 었습니다.

정상적인 Azure WebJob을 만든 경우 .NET Core와 호환되지 않는 .NET 버전이 사용되므로 대신 프로젝트를 here으로 설정하십시오. 웹 작업을 설정하려면 다음과 같이 구성해야합니다.

public static void Main(string[] args) 
    { 
     var config = new JobHostConfiguration 
     { 
      DashboardConnectionString = "", 
      StorageConnectionString = "" 
     }; 

     var host = new JobHost(config); 
     // The following code ensures that the WebJob will be running continuously 
     host.RunAndBlock(); 
    } 

RunAndBlock(); 뿐만 아니라 내 project.json에서 할 내가 mscorlib에 참조하는 데 필요한 구성과 같이

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 
    "Microsoft.Azure.WebJobs": "1.1.2", 
    "Microsoft.Azure.WebJobs.Core": "1.1.2", 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.3" 
    }, 
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
    "Microsoft.WindowsAzure.ConfigurationManager": "3.2.3", 
    "WindowsAzure.Storage": "8.0.1" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dnxcore50", 
     "net451" 
     ] 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "run.cmd" 
    ] 
    }, 

    "runtimes": { 
    "win10-x64": {} 
    } 
} 

"Microsoft.NETCore.Portable.Compatibility" 패키지에 대한 here 읽기, 그것은 말한다 : 이와 같이

,이 패키지를 사용하는 경우

오류 CS0012 : 'WebRequest'형식이 참조되지 않은 어셈블리에 정의되어 있습니다. 어셈블리 'System.Net.Requests, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'에 대한 참조를 추가해야합니다.

내가 얻을 정확히 무엇

,

Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The located assembly's manifest definition does not match the assembly reference. 

나는, 그러나,이 문제를 해결하는 방법을 완전히 확실하지 않다. 내 종속성 foo는 강력하지 않으며 Azure Queue 스토리지 + webjobs를 .NET 코어와 잘 연동시킬 수 있는지 확실하지 않다.

해결할 수있는 방법은 무엇입니까?

답변

1

시나리오에 따르면 WebJob에 대한 NETCore 콘솔 응용 프로그램을 빌드하려고했지만 사용자가 제공 한 것과 같은 오류가 발생할 수 있습니다. 그럼 난 NETCore에 WebJob SDK에 대한 몇 가지 유사한 issueissue을 발견하고, David Ebbo로 다음과 같이 말했다 :

는 .NET 코어를 사용하는 푸른 WebJobs 잘 작동, 명확히하기 위해. 특히 아직 지원되지 않는 WebJobs SDK의 사용입니다.

시나리오를 고려할 때 WebJob SDK를 사용하려면 NETCore 대신 표준 WebJob과 관련 라이브러리 (모델, 쿼리 등)를 빌드해야한다고 생각했습니다. 또는 시나리오를 다시 설계해야합니다.