2016-10-09 14 views
1

Azure WebJobがVS2015デバッガで実行されていましたが、徐々に断続的になり、まったく動作しませんでした。私はそれをAzureに配備しても問題ありません。ジョブはRunOnStartUpとしてマークされます。Azure WebJobがデバッガでローカルに実行されない

public class Program 
{ 
    static void Main() 
    { 
     var config = new JobHostConfiguration(); 
     config.UseTimers(); 
     var host = new JobHost(config); 
     host.RunAndBlock(); 
    } 
} 

public class TestJob : BaseJob 
{ 
    public static async Task StartupJob([TimerTrigger("05:00:00", RunOnStartup = true)] TimerInfo timerInfo, TextWriter log) 
    { 
     log.WriteLine("StartupJob"); 
     await Jobs.Test(some params); 
     log.WriteLine("Sorted"); 
    } 
} 

デバッガで実行するには何が必要ですか?

+1

デバッガ(Ctrl-F5)では正常に動作しますが、デバッガ(F5)ではうまく動作しません。どのくらい正確に失敗していますか? –

+0

StartupJob関数では決して停止しません。それを "発見"し、その名前のコンソールにメッセージを表示しますが、実行することはありません。 Azureにデプロイすると、完璧に動作しますが、実際の環境(プリントステートメントを使用)でデバッグしなければなりません。これは理想とはかけ離れています。 CTRL-F5はまったく同じですが、決してローカルには実行されません。 –

答えて

6

私はあなたの仕事にAzureで同じストレージアカウントを使用していて、ローカルでそれをデバッグしていると思いますか?その場合、TimeTriggerはシングルトンとして実行されます。つまり、実行できるようにロックを取得する必要があります。デバッグしようとしているローカルバージョンがAzureで実行されている場合、ロックを取得できません。

これを回避するには、「ライブ」Azureバージョンとローカルローカル開発用に異なるストレージアカウントを使用します。

"開発設定"を有効にすることをお勧めします。 - config.UseDevelopmentSettings(); - ローカルでデバッグするとき。これを有効にすると、「機能のロックを取得できません」というメッセージ(またはそれに類似するもの)が表示されます。

関連する問題