2014-10-27 2 views
16

Abbiamo un sito Web di Azure con un lavoro programmato quotidianamente. Nel nostro caso, il processo pianificato esegue una stored procedure che impiega circa 10 minuti, quindi non c'è elaborazione locale. Il nostro lavoro Web sta terminando dopo circa 4 minuti con questo errore.Impostazioni di configurazione del timeout di WebJob di Azure

Command 'cmd /c ...' aborted due to no output and CPU activity for 121 seconds. 
You may increase SCM_COMMAND_IDLE_TIMEOUT setting to solve the issue. 

Abbiamo provato ad aggiungere le seguenti impostazioni di app per il file app.config del lavoro web:

<appSettings> 
    <add key="SCM_COMMAND_IDLE_TIMEOUT" value="100000" /> 
    <add key="WEBJOBS_IDLE_TIMEOUT" value="100000" /> 
</appSettings> 

Questi file si fa riferimento in questo documento https://github.com/projectkudu/kudu/wiki/Web-jobs ma non sembrano avere alcun effetto . (si verifica ancora un timeout dopo aver aggiunto le impostazioni al file app.config)

Aggiungiamo le impostazioni di configurazione al posto giusto?

Grazie per l'aiuto.

+9

Invece di aggiungere al app.config, prova ad accedere al portale di gestione e aggiungendo l'impostazione 'applicazione SCM_COMMAND_IDLE_TIMEOUT' alla scheda di configurazione. (È anche possibile farlo tramite Visual Studio facendo clic con il pulsante destro del mouse sul sito Web in Esplora server e selezionando Visualizza impostazioni). –

+0

Ok, questo funziona - grazie. Ma ho bisogno di trovare un modo per farlo controllare nel controllo del codice sorgente e lavorare attraverso i file .config. Sai se le impostazioni devono essere configurate per il sito Web o il lavoro Web? – Ender2050

+0

Non è possibile avere un file impegnato per questa configurazione, è possibile aprire una richiesta di funzionalità per questo qui: https://github.com/projectkudu/kudu/issues come soluzione alternativa provare Console.WriteLine (".") Ogni minuto . –

risposta

12

È necessario impostare SCM_COMMAND_IDLE_TIMEOUT dal portale sul valore di timeout desiderato in secondi. Ad esempio, impostarlo su 3600 per un timeout di un'ora.

Vai alla sezione di configurazione del tuo sito web, trova la sezione delle impostazioni dell'app e aggiungi l'impostazione.

+0

Qualsiasi valore particolare 'da aggiungere con questa chiave? Aderisce a un formato perticolare? come "00: 10: 00' per 10 minuti? – NoReceipt4Panda

+1

@VolcovMeter Ho appena aggiornato la mia risposta con il formato –

6
  1. Accedere al portale Microsoft Azure

  2. Vai a App Services,

  3. Seleziona il tuo sito web

  4. Vai a impostazioni -> scheda Impostazioni dell'applicazione

  5. Crea una chiave "WEBJOBS_IDLE_TIMEOUT" nella sezione Impostazioni app

  6. Salva

+0

Cosa metti per il valore? – NoReceipt4Panda

+1

Devi mettere il valore in secondi, l'opzione migliore è quella di inserire quell'intervallo di tempo dopo il quale il lavoro web verrà eseguito di nuovo, in modo che il lavoro web non si blocchi nel momento dell'attesa. Supponiamo che il tuo lavoro Web venga eseguito dopo ogni ora, quindi inserisci 3600 nella casella di testo di valore. – youngseagul