que - upload webjob to azure
Configuración de cadenas de conexión de Azure WebJobs(AzureWebJobsDashboard ??) (3)
@RayHAz - Ampliando tu respuesta anterior (gracias) ...
Intenté esto https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-get-started
pero en .Net Core 2.1, se obtenían excepciones sobre cómo no podía encontrar la cadena de conexión.
En pocas palabras, terminé con lo siguiente, que funcionó para mí:
appsettings.json, en una aplicación de consola .Net Core 2.1:
{
"ConnectionStrings": {
"AzureWebJobsStorage": "---your Azure storage connection string here---",
"AzureWebJobsDashboard":"---the same connectionstring---"
}
}
... y mi archivo Program.cs ...
using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace YourWebJobConsoleAppProjectNamespaceHere
{
public class Program
{
public static IConfiguration Configuration;
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Path.Combine(AppContext.BaseDirectory))
.AddJsonFile("appsettings.json", true);
Configuration = builder.Build();
var azureWebJobsStorageConnectionString = Configuration.GetConnectionString("AzureWebJobsStorage");
var azureWebJobsDashboardConnectionString = Configuration.GetConnectionString("AzureWebJobsDashboard");
var config = new JobHostConfiguration
{
DashboardConnectionString = azureWebJobsDashboardConnectionString,
StorageConnectionString = azureWebJobsStorageConnectionString
};
var loggerFactory = new LoggerFactory();
config.LoggerFactory = loggerFactory.AddConsole();
var host = new JobHost(config);
host.RunAndBlock();
}
}
}
Estoy tratando de trabajar con Azure Webjobs, entiendo cómo funciona, pero no entiendo por qué necesito usar dos cadenas de conexión, una es para la cola de espera de mensajes, pero
¿Por qué hay otro llamado "AzureWebJobsDashboard"?
¿Cuál es su propósito?
¿Y de dónde obtengo esta cadena de conexión?
En el momento en que tengo una aplicación web y un trabajo web en la misma solución, solo experimento localmente (sin publicar nada), lo único que conseguí en la nube es la cuenta de almacenamiento que contiene la cola.
Incluso trato de poner la misma cadena de conexión en ambos lugares (AzureWebJobsDashboard, AzureWebJobsStorage) pero su excepción de lanzamiento: "No se puede enlazar el parámetro ''registro'' cuando se usa este disparador".
Gracias.
Bien, cualquiera que venga aquí en busca de una respuesta real de "¿de dónde obtengo el ConnectionString de" ... aquí tiene.
En el nuevo portal de Azure, debe tener un recurso de cuenta de almacenamiento; el mío comienza con "portalvhds" seguido de un grupo de alfanuméricos. Haga clic para ver un Panel de recursos a la derecha, seguido inmediatamente por una ventana de Configuración. Busque el submenú Claves en General: haga clic en eso. Toda la cadena de conexión está ahí (en realidad hay dos, Primaria y Secundaria; actualmente no comprendo la diferencia, pero vamos con la Primaria, ¿no?).
Copie y pegue eso en su archivo App.config en el atributo connectionString de los elementos AzureWebJobsDashboard y AzureWebJobsStorage. Esto supone para su entorno que solo tiene una cuenta de almacenamiento, por lo que desea que ese mismo almacenamiento se utilice para datos y registros.
Intenté esto, y al menos el WebJob se ejecutó sin lanzar un error.
Hay dos cadenas de conexión porque el SDK de WebJobs escribe algunos registros en la cuenta de almacenamiento. Le brinda la posibilidad de tener una cuenta de almacenamiento solo para datos ( AzureWebJobsStorage
) y la otra para registros ( AzureWebJobsDashboard
). Pueden ser los mismos. Además, necesita dos de ellos porque puede tener varios hosts de trabajo utilizando diferentes cuentas de datos pero enviando registros al mismo panel.
El error que está recibiendo no está relacionado con las cadenas de conexión sino con una de las funciones en su código. Uno de ellos tiene un parámetro de log
que no es del tipo correcto. ¿Puedes compartir el código?