Error al intentar publicar una función azul desde Visual Studio

13

Recibo el siguiente mensaje de error cuando intento publicar mi función usando Visual Studio, ¿alguna idea de cómo solucionar esto?

System.AggregateException: se produjeron uno o más errores. ---> System.Exception: Publicar ha encontrado un error. No pudimos determinar la causa del error. Consulte el registro de salida para obtener más detalles. --- Fin del seguimiento de la pila de excepción interna --- en System.Threading.Tasks.Task.ThrowIfExceptional (Boolean includeTaskCanceledExceptions) en System.Threading.Tasks.Task.Wait (Int32 milisecondsTimeout, CancellationToken cancellationToken) en Microsoft.Publish.FrameworkFoking. Model.DefaultPublishSteps. <> C__DisplayClass26_0.b__2 () en System.Threading.Tasks.Task`1.InnerInvoke () en System.Threading.Tasks.Task.Execute () --- Fin del seguimiento de la pila desde la ubicación anterior donde se produjo la excepción lanzado --- en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Tarea de tarea) en System.Runtime.CompilerServices. TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) en Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext () --- Fin del seguimiento de la pila desde la ubicación anterior donde se produjo la excepción --- en System.Runtime.CompilerServices.TaskAwaiter.ThrowAwaiter. (Tarea de tarea) en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tarea de tarea) en Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Inner Exception # 0) System.Exception # Publish ha. Encontró un error. No pudimos determinar la causa del error. Consulte el registro de salida para obtener más detalles. <--- MoveNext () --- Fin del seguimiento de la pila desde la ubicación anterior donde se produjo la excepción --- en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tarea de tarea) en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tarea de tarea) en Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Excepción interna # 0) System.Exception: Publicación ha encontrado un error. No pudimos determinar la causa del error. Consulte el registro de salida para obtener más detalles. <--- MoveNext () --- Fin del seguimiento de la pila desde la ubicación anterior donde se produjo la excepción --- en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tarea de tarea) en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tarea de tarea) en Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Excepción interna # 0) System.Exception: Publicación ha encontrado un error. No pudimos determinar la causa del error. Consulte el registro de salida para obtener más detalles. <--- d__213.MoveNext () ---> (Excepción interna n. ° 0) System.Exception: Publish ha encontrado un error. No pudimos determinar la causa del error. Consulte el registro de salida para obtener más detalles. <--- d__213.MoveNext () ---> (Excepción interna n. ° 0) System.Exception: Publish ha encontrado un error. No pudimos determinar la causa del error. Consulte el registro de salida para obtener más detalles. <---

System.Exception: Publicar ha encontrado un error. No pudimos determinar la causa del error. Consulte el registro de salida para obtener más detalles.

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

Recusiwe
fuente
Me encuentro con un problema similar en este momento en Visual Studio 2019, aunque estoy tratando de publicar en una carpeta en mi caso. Todavía estoy tratando de rastrear qué está causando esto, pero lo he intentado hasta ahora en mi caso: 1.) Borrar el caché NuGet, 2.) Eliminar las carpetas bin y obj 3.) Creé un nuevo perfil de carpeta También, ¿Qué ves en el archivo de registro de salida? ¿Algo útil?
VirtualValentin
¿Ha tratado de implementar a través de Git a través deDeployment Center
Pavle

Respuestas:

8

Puedes intentar this

Elimine la configuración WEBSITE_RUN_FROM_PACKAGE completamente de la Configuración de la aplicación Azure Functions de Azure Portal.

Sajeetharan
fuente
2
Lo he hecho sin ningún éxito.
Recusiwe
Esto funcionó para mí. No estoy seguro de si está relacionado con el "reinicio" de la función Azure cuando se realizan cambios en el entorno o si es una configuración de bloqueo.
Justin Neff
5

Este es un problema de tiempo de espera de Visual Studio, lo que significa que su código y algunas otras configuraciones no son la clave del problema. Este error se produce porque Visual establece un límite de tiempo de espera en la versión. (El archivo es demasiado grande o la velocidad de Internet es inestable)

Si su proyecto de implementación no es demasiado grande, puede esperar hasta que la velocidad de la red sea estable antes de intentar ejecutarla. Por supuesto, también puede probar otros métodos de implementación para evitar este problema, como la implementación zip .

BowmanZhu
fuente
He tenido éxito al implementarlo usando zipdeploy. Sin embargo, cuando verifico el contenido de la aplicación, se actualiza, pero cuando ejecuto la función, ¿parece ejecutar la versión anterior?
Recusiwe
@Recusiwe ¿Qué significa "ejecutar versión antigua"? ¿Quiere decir que se cambió la versión de la función azul? ¿La implementación de zip resolvió este problema?
BowmanZhu
Con "versión anterior" me refiero a la última versión que pude publicar desde VS, no la versión desplegada. El contenido de la aplicación contiene el código del zip desplegado, pero no lo ejecuta. Se ejecuta una versión antigua.
Recusiwe
@Recusiwe ¿Qué versión de función está utilizando ahora? ¿Qué IDE estás usando ahora? ¿Y cuál es el ensamblaje de su proyecto? (El .csprojarchivo) Me enfrenté a un error similar antes, parece un problema de ensamblaje esa vez. A veces, este error ocurre solo en Visual Studio 2019. Puede intentar usar Visual Studio 2017 para ver si esta excepción todavía existe. Si está utilizando Visual Studio 2017, ¿usa Resharper? Estoy tratando de reproducir su error y encontrar uno similar, pero no estoy seguro de que esté relacionado con su situación.
BowmanZhu
Aplicación de
0

Sin compartir su proyecto en una forma de juego como GitHub, es realmente difícil para nosotros ofrecer consejos específicos, hay tantas variables, tantas combinaciones de paquetes NuGET y referencias que su proyecto puede tener ese conflicto de tal manera que causará esto. error.

Especialmente con las funciones v2, he experimentado este problema o similares varias veces. Uno de los factores más importantes con las funciones son los conceptos competitivos entre v1 y v2.

Cuando usa el asistente de publicación de Visual Studio para crear el recurso de destino en Azure, tiende a tener mayor éxito, si ha estado luchando con esto durante un tiempo, le sugiero que siga este proceso, como prueba de concepto, si no es otra cosa:

Este consejo funciona igual de bien en VS2017 y 2019

  1. Cree un nuevo proyecto de función en Visual Studio, en la misma solución.
    • Replica el nombre de tu función original
  2. Publique la función en un NUEVO recurso de Azure, use el asistente de publicación para crear este recurso.
  3. Si la publicación es exitosa:
    • Mueva su código de proyecto original al nuevo proyecto
    • Preste mucha atención a las versiones de paquetes nuget que desea transmitir, ellas y sus dependencias deberán ser compatibles con v2
  4. Si la publicación NO es exitosa
    • Asegúrese de actualizar su Visual Studio a la última versión
    • Asegúrese de que sus herramientas de Azure también estén actualizadas a la última

Como regla general, para el éxito general con Azure Functions:

  1. Use v1 para proyectos de .Net Framework, o si CUALQUIERA de sus proyectos de referencia o paquetes NuGET tienen dependencias de .Net Fx. (entonces .Net 4 + ... o cualquier cosa que no sea .Net Core .)

    Incluso cuando esas dependencias se dirigen a múltiples proyectos, con las funciones, la implementación tiende a fallar, ya que no puede detectar correctamente la plataforma correcta al evaluar las dependencias de NuGET durante la implementación.

  2. Use v2 SOLAMENTE para proyectos .Net Core , asegúrese de que sus referencias también sean solo .Net core

Compile y publique su código de forma incremental, también use AzureDevOps o GitHub u otros repositorios de código fuente para registrar su código a menudo con Funciones. En las primeras etapas de un proyecto de Funciones, a menudo incorporamos múltiples referencias y paquetes NuGET y parecen funcionar localmente, pero no cuando implementamos.

  • El uso de un repositorio de código fuente facilita la confirmación de los cambios antes de instalar nuevos paquetes y deshacer si la instalación del paquete da como resultado un código que no se puede implementar.
  • Parece desordenado, pero debido al control de versiones de NuGet, volver al estado antes de instalar un paquete que no se asimila a la desinstalación de ese paquete, puede haber actualizado fácilmente otros paquetes, y en este entorno cambiante de Azure, muchos autores de paquetes han optado por actualizar su recursos entre .Net Framework y .Net Core, y no siempre lo han hecho bien, o a veces conservan algunos elementos de .Net framework que causarán conflictos en Azure Functions.

Hay algunas discusiones interesantes que pueden ayudar:

Chris Schaller
fuente
0

La solución fue actualizar al SDK más nuevo.

Recusiwe
fuente
Eso no funcionó para mí.
Justin Neff