WebJob使用實體框架核心:訪問站點配置信息

asp.net-core azure-webjobs c# entity-framework entity-framework-core

我正在構建一個使用EF Core Sql Server數據庫的ASP.NET Core MVC站點。

在網站的一部分,我需要添加上傳文件的功能,然後處理並應用到數據庫。我以為我會使用WebJobs。

我不清楚的是我如何在我的網站和webjob之間共享數據庫連接字符串。是否有類似於網站的Startup.cs中的ConfigureServices()方法的東西,我可以在webjob的程序Main()中使用?

計劃主要

根據請求,這是我當前的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門戶上設置的應用程序設置和連接字符串。因此我們可以在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作業儀表板中看到結果

在此處輸入圖像描述



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow