Errore durante il tentativo di pubblicare una funzione azzurra da Visual Studio


13

Ricevo il seguente messaggio di errore quando provo a pubblicare la mia funzione utilizzando Visual Studio, avete idea di come risolvere questo problema?

System.AggregateException: si sono verificati uno o più errori. ---> System.Exception: Pubblica ha riscontrato un errore. Impossibile determinare la causa dell'errore. Controllare il registro di output per ulteriori dettagli. --- Fine della traccia dello stack delle eccezioni interne --- su System.Threading.Tasks.Task.ThrowIfExceptional (Boolean includeTaskCanceledExceptions) su System.Threading.Tasks.Task.Wait (Int32 millisecondiTimeout, cancellazionePer annullare l'iscrizione) su Microsoft.Publish.Framework. Model.DefaultPublishSteps. <> C__DisplayClass26_0.b__2 () su System.Threading.Tasks.Task`1.InnerInvoke () su System.Threading.Tasks.Task.Execute () --- Fine della traccia dello stack dalla posizione precedente in cui era presente l'eccezione generato --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task) su System.Runtime.CompilerServices. TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task task) su Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext () --- Fine della traccia dello stack dalla posizione precedente in cui è stata generata l'eccezione --- at System.Runtime.CompilerServices.TaskAwaiteronhuccF (Task task) su System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task task) su Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Eccezione interna # 0) System.Exception: Publish has riscontrato un errore. Impossibile determinare la causa dell'errore. Controllare il registro di output per ulteriori dettagli. <--- MoveNext () --- Fine della traccia dello stack dalla posizione precedente in cui è stata generata l'eccezione --- in System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task) su System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task task) su Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Inner Exception # 0) System.Exception: Publish ha riscontrato un errore. Impossibile determinare la causa dell'errore. Controllare il registro di output per ulteriori dettagli. <--- MoveNext () --- Fine della traccia dello stack dalla posizione precedente in cui è stata generata l'eccezione --- in System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task) su System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task task) su Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Inner Exception # 0) System.Exception: Publish ha riscontrato un errore. Impossibile determinare la causa dell'errore. Controllare il registro di output per ulteriori dettagli. <--- d__213.MoveNext () ---> (Inner Exception # 0) System.Exception: Publish ha riscontrato un errore. Impossibile determinare la causa dell'errore. Controllare il registro di output per ulteriori dettagli. <--- d__213.MoveNext () ---> (Inner Exception # 0) System.Exception: Publish ha riscontrato un errore. Impossibile determinare la causa dell'errore. Controllare il registro di output per ulteriori dettagli. <---

System.Exception: Pubblica ha riscontrato un errore. Impossibile determinare la causa dell'errore. Controllare il registro di output per ulteriori dettagli.

===================


Sto riscontrando un problema simile al momento in Visual Studio 2019, anche se sto provando a pubblicare nella cartella nel mio caso. Sto ancora cercando di rintracciare ciò che sta causando questo, ma ho provato finora nel mio caso: 1.) Cancella la cache NuGet, 2.) Rimuovi le cartelle bin e obj 3.) Creato un nuovo profilo di cartella, cosa vedi nel file di registro di output? Qualcosa di utile?
VirtualValentin,

Hai provato a distribuirlo tramite Git viaDeployment Center
padle il

Risposte:


8

Puoi provare this

Rimuovere l'impostazione WEBSITE_RUN_FROM_PACKAGE interamente dalle Impostazioni dell'applicazione Funzioni di Azure dal portale di Azure.


2
L'ho fatto senza successo.
Recusiwe,

Questo ha funzionato per me. Non sono sicuro che sia correlato al suo "riavvio" della funzione di Azure quando vengono apportate modifiche all'ambiente o se si tratta di una configurazione di blocco.
Justin Neff,

5

Questo è un problema di timeout di Visual Studio, il che significa che il codice e alcune altre impostazioni non sono la chiave del problema. Questo errore si verifica perché Visual imposta un limite di timeout per la versione. (Il file è troppo grande o la velocità di Internet è instabile)

Se il progetto di distribuzione non è troppo grande, è possibile attendere che la velocità della rete sia stabile prima di provare a eseguirlo. Naturalmente, puoi anche provare altri metodi di distribuzione per evitare questo problema, come la distribuzione zip .


Ho avuto successo distribuendolo usando zipdeploy. Tuttavia, quando controllo il contenuto dell'app, viene aggiornato, ma quando eseguo la funzione, sembra che esegua la versione precedente?
Recusiwe,

@Recusiwe Cosa significa "esegui versione precedente"? Vuoi dire che la versione della funzione azzurro è stata cambiata zip Zip deploy ha risolto questo problema?
BowmanZhu,

Con "versione precedente" intendo l'ultima versione che sono stato in grado di pubblicare da VS, non quella distribuita tramite zip. Il contenuto dell'app contiene il codice dallo zip distribuito, ma non lo esegue. Funziona con una versione precedente.
Recusiwe,

@Recusiwe Quale versione di funzione stai utilizzando ora? Quale IDE stai usando ora? E quale sia l'assemblaggio del tuo progetto (il .csprojfile) che ho riscontrato un errore simile prima, quella volta sembra un problema di assemblaggio. A volte questo errore si verifica solo in Visual Studio 2019. Puoi provare a utilizzare Visual Studio 2017 per vedere se questa eccezione esiste ancora. Se stai usando Visual Studio 2017, usi Resharper? Sto cercando di riprodurre il tuo errore e di incontrarne uno simile, ma non sono sicuro che ciò sia legato alla tua situazione.
BowmanZhu,

Funzione app v. 2 e Visual Studio 16.4.1
Recusiwe

0

Senza condividere il tuo progetto su una forma di gioco come GitHub, è davvero difficile per noi offrire consigli specifici, ci sono così tante variabili, così tante combinazioni di pacchetti NuGET e riferimenti che il tuo progetto potrebbe avere quel conflitto in modo tale da causare questo errore.

Soprattutto con le funzioni v2, ho riscontrato questo problema o simili un numero di volte. Uno dei maggiori fattori con le funzioni sono i concetti in competizione tra v1 e v2.

Quando si usa la procedura guidata di pubblicazione di Visual Studio per creare la risorsa di destinazione in Azure, tende ad avere maggiore successo, se si è avuto difficoltà con questo per un po ', suggerisco di seguire questo processo, come prova del concetto se non altro:

Questo consiglio funziona ugualmente bene in VS2017 e 2019

  1. Crea un nuovo progetto di funzione in Visual Studio, nella stessa soluzione.
    • Replica il nome della tua funzione originale
  2. Pubblica la funzione su una NUOVA risorsa di Azure, usa la procedura guidata di pubblicazione per creare questa risorsa.
  3. Se la pubblicazione ha esito positivo:
    • Sposta il codice del tuo progetto originale nel nuovo progetto
    • Presta molta attenzione alle versioni dei pacchetti nuget che vuoi mostrare, loro e le loro dipendenze dovranno essere conformi alla v2
  4. Se la pubblicazione NON ha esito positivo
    • Assicurati di aggiornare Visual Studio alla versione più recente
    • Assicurati che anche gli Strumenti di Azure siano aggiornati alla versione più recente

Come regola generale, per il successo generale con Funzioni di Azure:

  1. Utilizzare v1 per i progetti .Net Framework o se QUALUNQUE dei tuoi progetti di riferimento o pacchetti NuGET hanno dipendenze .Net Fx. (quindi .Net 4 + ... o qualsiasi cosa che non sia .Net Core .)

    Anche quando tali dipendenze si rivolgono a più progetti, con Funzioni la distribuzione tende a fallire in quanto non è in grado di rilevare correttamente la piattaforma corretta durante la valutazione delle dipendenze NuGET durante la distribuzione.

  2. Utilizzare v2 SOLO per i progetti .Net Core , assicurarsi che i riferimenti siano anche solo .Net core

Compilare e pubblicare il codice in modo incrementale, usare anche AzureDevOps o GitHub o altri repository di codice sorgente per archiviare il codice spesso con Funzioni. Nelle prime fasi di un progetto Funzioni introduciamo spesso riferimenti multipli e pacchetti NuGET e sembrano funzionare localmente ma non quando lo implementiamo.

  • l'utilizzo di un repository di codice sorgente semplifica il commit delle modifiche prima di installare nuovi pacchetti e il rollback se l'installazione del pacchetto risulta un codice non distribuibile.
  • Sembra disordinato, ma a causa del controllo delle versioni di NuGet, tornando allo stato prima di installare un pacchetto che non si integra come disinstallazione di quel pacchetto, potrebbe aver facilmente aggiornato altri pacchetti e in questo ambiente Azure in evoluzione molti autori di pacchetti hanno scelto di aggiornare il loro risorse tra .Net Framework e .Net Core, e non sempre lo hanno fatto bene, o talvolta mantengono alcuni elementi .Net framework che causeranno conflitti in Funzioni di Azure.

Ci sono alcune discussioni interessanti che possono aiutare:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.