2016-02-13 9 views
8

Ho avuto modo di un sito web e un progetto webjob nella stessa SLN:Deploy sito azzurro e webjobs nella stessa SLN utilizzando VSO - Errore - Non ci può essere un solo

  • Sritt (Il sito)
  • Sritt.Webjob

In proprietà di Sritt theres webjobs-list.json con le seguenti impostazioni:

"WebJobs": [ 
    { 
     "filePath": "../Sritt.WebJob/Sritt.WebJob.csproj" 
    } 

Ho configurato il da VSTS costruire in questo modo (con il nuovo sistema di compilazione):

Solution: **\*.sln  
MSBuild Args: /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)" 

Building di VSTS mi dà il seguente avviso:

C:\a\1\s\packages\Microsoft.Web.WebJobs.Publish.1.0.9\tools\webjobs.console.targets(149,5): warning : WebJob schedule for SrittWebJob will not be created. WebJob schedules can only be created when the publish destination is an Azure Website [C:\a\1\s\Sritt.WebJob\Sritt.WebJob.csproj] 

E il seguente errore:

packageFile= Find-Files -SearchPattern C:\a\1\a\**\*.zip 
packageFile= C:\a\1\a\Sritt.WebJob.zip C:\a\1\a\Sritt.zip 
Found more than one file to deploy with search pattern 'C:\a\1\a\**\*.zip'. There can be only one. 

Come posso distribuire sia il sito Web che il webjob? Devo dividerli in diverse soluzioni?

risposta

20

Sembra che si stia utilizzando l'attività "Distribuzione Web di Azure" per distribuire il progetto. Non è necessario dividerli in soluzioni diverse, ma è necessario distribuirle in attività separate.

Quindi è necessario aggiungere un'altra attività "Distribuzione di app Web di Azure" nella definizione di build. L'impostazione è quasi la stessa per queste due attività tranne la sezione "Pacchetto Web Deploy": Una è "$ (build.artifactstagingdirectory) \ ** \ Sritt.zip" e un'altra è "$ (build.artifactstagingdirectory) \ * * \ Sritt.WebJob.zip".

+0

Grazie, ha risolto il problema. Grazie anche per il tempo dedicato a scrivere le impostazioni effettive da utilizzare :-) – Larsi

+0

Ciao di nuovo - questa probabilmente è una nuova domanda, nel caso sia facile: dopo la distribuzione non riesco ad aprire il sito web, ottengo la pagina gialla, per attivare il debug, ma è già attivo. Sembra che l'intera pagina Web vada giù quando aggiungo il progetto webjob. Rimuovendo il progetto e ripubblicato, tutto funziona di nuovo. Qualche idea? – Larsi

+0

@ Larsi Puoi aprire un nuovo caso per includere più dettagli come il progetto che hai rimosso, quale pagina ottieni dopo la distribuzione? –

1

L'errore non è correlato alla pubblicazione di WebJob, ma alla pubblicazione della modifica di Azure Scheduler. In genere, la configurazione di Azure Schedule da msbuild è nota per avere problemi e non è più consigliata.

Invece, l'approccio suggerito è quello di utilizzare la nuova pianificazione basata su cron di WebJob, che non ha quei problemi. Vedi lo docs per maggiori dettagli su come configurarlo (è piuttosto semplice).

+0

Grazie per l'esame. Sto correndo in modalità "Condivisa", i documenti dicono che cron è disponibile solo per Standard o Premium. Non sono sicuro di cosa intendi con "... ma con la pubblicazione della modifica di Azure Scheduler". Intendi "webjob-publish-settings.json"? – Larsi

+0

Richiede Basic o superiore (il documento dice Standard o alto ma non è corretto), quindi non funzionerà in modalità Condivisa. –

+0

Quando si utilizza lo scheduler di Azure, il processo di pubblicazione VS fa due cose molto diverse. Innanzitutto, pubblica i lavori Web in Servizio app di Azure. Secondo, configura l'Utilità di pianificazione di Azure. Il mio chiarimento è stato che l'errore che si ottiene si riferisce alla parte di Azure Scheduler e non alla parte di WebJob. –

Problemi correlati