asp.net-mvc git azure azure-webjobs kudu

asp.net mvc - ¿Cómo implemento un Azure WebJob junto con una aplicación web.NET Core a través de Git?



asp.net-mvc azure-webjobs (1)

Los archivos de WebJobs se almacenan en las carpetas ''App_Data / jobs / continuous'' o ''App_Data / jobs / triggered'', por lo que una forma de usar la aplicación Web y WebJob es copiar manualmente todos los archivos de WebJobs necesarios en estas carpetas durante la compilación hora. Creo que esto se ajustará mientras se actualicen las herramientas de VS.

Mi solución es un poco diferente a la suya ya que estoy usando Visual Studio Team Services para compilar y lanzar mi aplicación a Azure, pero el concepto es el mismo. Puede usar un evento posterior a la compilación en Visual Studio para ejecutar un script que copia estos archivos en la carpeta de trabajos.

A continuación se muestran los pasos que he configurado en la definición de compilación de VSTS:

  1. Tarea de línea de comandos: Herramienta: dotnet Argumentos: restaurar

  2. Tarea de creación de Visual Studio: Solución: ** / MyApp.sln Plataforma: $ (BuildPlatform) Configuración: $ (BuildConfiguration) Versión de Visual Studio : Visual Studio 2015

  3. Tarea de línea de comandos: Herramienta: dotnet Argumentos: publish -c $ (BuildConfiguration)

  4. Tarea de la línea de comandos: Herramienta: dotnet Argumentos: publish -c $ (BuildConfiguration) $ (Build.SourcesDirectory) / src / MyApp.Jobs / project.json

  5. Tarea para copiar archivos (este es el truco): Carpeta de origen: src / MyApp.Jobs / bin / $ (BuildConfiguration) /netcoreapp1.0/publish/ Contenido: ** Carpeta de destino: src / MyApp.Web / bin / $ (BuildConfiguration ) /netcoreapp1.0/publish/App_Data/jobs/triggered/MyJobName/

  6. Tarea de archivos archivados: Carpeta raíz (o archivo) a archivar: src / MyApp.Web / bin / $ (BuildConfiguration) /netcoreapp1.0/publish/ Prefijo el nombre de la carpeta raíz para archivar la ruta: no seleccionado Tipo de archivo: zip Archivo comprimido para crear: website.zip Reemplazar archivo existente: marcado

  7. Tarea de copia de archivos: carpeta de origen: Contenido: ** / *. Zip Carpeta de destino: $ (Build.ArtifactStagingDirectory)

  8. Tarea de publicación Crear artefactos: Ruta de acceso publicar: $ (Build.ArtifactStagingDirectory) Nombre del artefacto: soltar Tipo de artefacto: Servidor

Pensé que esta sería una tarea bastante sencilla y que hay bastante documentación por ahí, pero no he tenido suerte con nada de eso y supongo que está prácticamente desactualizada.

Tengo .NET Core MVC 6 Web App que he estado desarrollando durante un tiempo y necesito configurar un WebJob para Azure. Quiero implementar esto junto con la aplicación utilizando el sistema de implementación continua que Azure proporciona que la aplicación ya está utilizando. Según los documentos de Kudu es posible:

https://github.com/projectkudu/kudu/wiki/Web-Jobs#deploying-net-console-webjobs-alongside-an-aspnet-application

Que estados:

Esto funciona tanto cuando se implementa directamente desde Visual Studio (WebDeploy), como a través de git.

Hace referencia a este enlace ( https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/ ), que he estado intentando seguir sin éxito.

Tengo la última versión de Visual Studio 2015, .NET Core 1.0.0 & Tools y el SDK de Azure.

Lo primero que se hace evidente es que no tengo las opciones de andamiaje que se muestran en las capturas de pantalla en los documentos de Azure y, al no encontrar las dependencias faltantes, recurrí a intentar configurarlas manualmente como se describe.

Incluso después de colocar los archivos necesarios en las ubicaciones especificadas ( webjobs-list.json y webjob-publish-settings.json ) y configurarlos para mi proyecto, y agregar Microsoft.Web.WebJobs.Publish al proyecto WebJob, Kudu no encuentra El WebJob a través del sistema de despliegue continuo.

He intentado varios enfoques y variaciones basados ​​en la documentación que he encontrado, pero simplemente no puedo hacerlo funcionar y todas las otras preguntas de SO tienen años.

¿Alguien sabe lo que estoy haciendo mal? ¿Esto es aún posible con la última versión de .NET Core MVC?