webentwicklung-frage-antwort-db.com.de

Azure WebJobs-Verbindungszeichenfolgenkonfiguration (AzureWebJobsDashboard ??)

Ich versuche, mit Azure-Webjobs zu arbeiten. Ich verstehe die Funktionsweise, aber ich verstehe nicht, warum ich zwei Verbindungszeichenfolgen verwenden muss, eine für die Warteschlange für das Halten der Nachrichten, aber 

  1. warum gibt es einen anderen namens "AzureWebJobsDashboard"?

  2. Was ist der Zweck?

  3. Und woher bekomme ich diese Verbindungszeichenfolge? 

Im Moment habe ich eine Webanwendung und einen Webjob für dieselbe Lösung. Ich experimentiere nur lokal (ohne etwas zu veröffentlichen). Die einzige Sache, die ich in der Cloud gefunden habe, ist das Speicherkonto, das die Warteschlange enthält.

Ich versuche sogar, die gleiche Verbindungszeichenfolge an beiden Stellen einzufügen (AzureWebJobsDashboard, AzureWebJobsStorage), aber die Auslöserausnahme: "Parameter 'log' kann nicht gebunden werden, wenn dieser Trigger verwendet wird."

Vielen Dank.

17
Ron

Es gibt zwei Verbindungszeichenfolgen, da das WebJobs-SDK einige Protokolle in das Speicherkonto schreibt. Sie haben die Möglichkeit, ein Speicherkonto nur für Daten (AzureWebJobsStorage) und das andere für Protokolle (AzureWebJobsDashboard) zu haben. Sie können gleich sein. Außerdem benötigen Sie zwei davon, da Sie mehrere Jobhosts verwenden können, die unterschiedliche Datenkonten verwenden, jedoch Protokolle an dasselbe Dashboard senden.

Der Fehler, den Sie erhalten, bezieht sich nicht auf die Verbindungszeichenfolgen, sondern auf eine der Funktionen in Ihrem Code. Einer von ihnen hat einen log-Parameter, der nicht den richtigen Typ hat. Kannst du den Code teilen?

18

Jeder, der hierher kommt und nach einer Antwort sucht, woher bekomme ich den ConnectionString? Hier geht's.

Auf dem neuen Azure-Portal sollten Sie über eine Speicherkonto-Ressource verfügen. Meine beginnt mit "Portalvhds", gefolgt von einer Reihe von alphanumerischen Zeichen. Klicken Sie auf diese Option, um rechts ein Ressourcen-Dashboard anzuzeigen, unmittelbar gefolgt von einem Einstellungsfenster. Suchen Sie unter Allgemein das Tasten-Untermenü - klicken Sie darauf. Die gesamte Verbindungszeichenfolge ist vorhanden (tatsächlich gibt es zwei, Primär und Sekundär; ich verstehe den Unterschied derzeit nicht, aber lasst uns mit Primär gehen, oder?).

Kopieren Sie diese Datei und fügen Sie sie in Ihre App.config-Datei in das connectionString-Attribut der AzureWebJobsDashboard- und AzureWebJobsStorage-Elemente ein. Dies setzt voraus, dass Sie für Ihre Umgebung nur über ein Speicherkonto verfügen. Daher möchten Sie, dass derselbe Speicher für Daten und Protokolle verwendet wird.

Ich habe dies versucht und zumindest der WebJob lief ohne Fehler.

14
RayHAz

@RayHAz - Erweitere deine obige Antwort (Danke) ... 

Ich habe dies versucht https://docs.Microsoft.com/de-de/Azure/app-service/webjobs-sdk-get-started

in .Net Core 2.1 wurden jedoch Ausnahmen darüber erhalten, dass die Verbindungszeichenfolge nicht gefunden werden konnte. 

Um es kurz zu machen, endete das Folgende, was für mich funktionierte:

appsettings.json in einer .Net Core 2.1-Konsolenanwendung:

{
  "ConnectionStrings": {
  "AzureWebJobsStorage": "---your Azure storage connection string here---",
  "AzureWebJobsDashboard":"---the same connectionstring---"
  }
}

... und meine Program.cs-Datei ...

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();
        }
    }
}
0
David Barrows