私はEF Core Sql Serverデータベースを使用するASP.NET Core MVCサイトを構築しています。
サイトの一部では、ファイルをアップロードする機能を追加し、処理してデータベースに適用する必要があります。私はこれにWebJobを使用すると思った。
私が明確にしていないのは、私のウェブサイトとウェブジョブの間でデータベース接続文字列を共有する方法です。 WebJobのプログラムMain()で使用できるWebサイトのStartup.csのConfigureServices()メソッドに類似したものがありますか?
プログラムメイン
要求ごとに、ここに私の現在のWebJobsコードがすべて栄光です:
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();
}
そこにたくさんありませんが、私はちょうど始めています:)
私が知っているように、Azure WebアプリケーションとWebJobはAzureポータルで設定されたApp設定と接続文字列を共有します。そこで、Azureポータルで接続文字列を定義し、次にConfigurationManagerを使用して接続文字列を取得します。私はあなたのためにこれを確認するための小さなテストを行った。
1)値 'test'で接続文字列 'myconnection'を設定する
2)Webジョブプロジェクトを使用して接続を出力する
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)Azure Webジョブダッシュボードで結果を確認します