Sto creando un sito ASP.NET Core MVC che utilizza un database EF Core Sql Server.
In parte del sito ho bisogno di aggiungere la possibilità di caricare file, che poi vengono elaborati e applicati al database. Pensavo che avrei usato WebJobs per questo.
Quello su cui non sono chiaro è come condivido la stringa di connessione del database tra il mio sito web e il webjob. Esiste qualcosa di analogo al metodo ConfigureServices () nel file Startup.cs del sito web che posso utilizzare nel programma principale di webjob ()?
Programma principale
Per richiesta, ecco il mio attuale codice WebJobs in tutta la sua gloria:
public static void Main(string[] args)
{
var config = new JobHostConfiguration();
if( config.IsDevelopment )
{
config.UseDevelopmentSettings();
config.DashboardConnectionString = "...";
config.StorageConnectionString = "...";
}
JobHost host = new JobHost( config );
host.RunAndBlock();
}
Non molto lì, ma sto solo iniziando :)
Come noto, l'app Web di Azure e WebJob condividono le impostazioni delle app e le stringhe di connessione impostate sul portale di Azure. Quindi possiamo definire la stringa di connessione sul portale azzurro, quindi utilizzare ConfigurationManager per ottenere la stringa di connessione. Ho fatto un piccolo test per verificarlo per te.
1) Imposta la stringa di connessione 'myconnection' con valore 'test'
2) utilizzare il progetto di lavoro Web per generare la connessione
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log)
{
log.WriteLine(message);
string connectionString = ConfigurationManager.ConnectionStrings["myconnection"].ToString();
Console.WriteLine("this is my webjob project console write " + connectionString);
}
3) Quindi vedo il risultato nel dashboard del lavoro Web di Azure