2016-09-13 1 views
3

새 파일을 입력 blob 컨테이너에 넣고 다른 파일에 복사 할 때 트리거 할 것으로 가정되는 webjobs SDK의 가장 간단한 예제가 있습니다.Azure WebJobs SDK 대시 보드 연결 문자열이 비어 있거나 전혀 비어 있지 않으면 비어있는 이유는 무엇입니까?

다음은 코드와 App.config이며 계정 이름과 키는 의도적으로 XXX로 수정되었습니다.

문제는 로컬로 실행할 때 아래 예외가 발생한다는 것입니다.

System.InvalidOperationException 처리되지 않았습니다. HResult = -2146233079 메시지 = Microsoft Azure WebJobs SDK 대시 보드 연결 문자열이 없거나 비어 있습니다.

은 내가 이미 시도 :

  1. 는 JobHostConfiguration 변수를 생성하고이 연결 문자열을 설정. 같은 오류가 발생합니다.
  2. 이것을 Azure WebJob에 게시하고 Azure Portal 웹 사이트 구성에 연결 문자열을 넣으면 작업 로그에 똑같은 오류가 나타납니다. 작업 모드가 Continuous로 설정되었고 AlwaysOn 옵션이 webapp에 설정되었습니다.
  3. connectionStrings 대신 appSetting 항목에 연결 정보 넣기. 어딘가에 블로그 게시물을 보았지만 여전히 작동하지 않았습니다.
  4. 연결 문자열에서 UseDevelopmentStorage를 사용하지만 Azure 저장소 에뮬레이터가 지원되지 않는다고 불평합니다.

방금 ​​SDK의 최신 버전을 설치했습니다 (2.9, 믿을 수 있습니까?). 이것은 새로운 머신이고 나는 Azure와 WebJobs를 배우고 있기 때문에 이전에이 머신에서 작동하는 많은 복잡한 시나리오를 얻지 못했을 것입니다.

이 시점에서, 나는 손실에 처해있다. 어떤 도움이라도 대단히 감사합니다. 감사합니다.

코드 :

using Microsoft.Azure.WebJobs; 
using System.IO; 

namespace TestWebJob1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      JobHost host = new JobHost(); 
      host.RunAndBlock(); 
     } 

     public static void CopyCopy([BlobTrigger("testinput/{name}")] TextReader input, [Blob("testoutput/{name}")] out string output) 
     { 
      output = input.ReadToEnd(); 
     } 
    } 
} 

의 App.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> 
    </startup> 
    <connectionStrings> 
    <add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=XXXX;AccountKey=XXX" /> 
    </connectionStrings> 
</configuration> 

답변

3

아주 바보. 2 개의 연결 문자열이 필요합니다. 대시 보드 및 저장소.

예외 텍스트의 유일한 차이점은 Storage vs Dashboard라는 단어이므로 전체 텍스트를 실제로 읽지는 않았으며 몇 개의 블로그 게시물을 읽을 때까지 2 개의 연결이 필요하다는 것을 알지 못했습니다.

이름이 AzureWebJobsStorage 인 연결 문자열을 추가하면 오류가 해결되었습니다.

1

JobHostConfiguration 개체를 구성 할 때 연결 문자열을 명시 적으로 설정할 수 있습니다.

class Program 
{ 
    static void Main() 
    { 
     //Configure JobHost 
     var storageConnectionString = "your_connection_string"; //You can load this from .config file obviously 
     var config = new JobHostConfiguration(storageConnectionString); 

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

희망이 도움이됩니다.

관련 문제