0

私は、EFコアSql Serverデータベースを使用するASP.NETコアMVCサイトを構築しています。WebJobエンティティフレームワークコアを使用する:サイト構成情報にアクセスする

サイトの一部では、ファイルをアップロードする機能を追加する必要があります。この機能は、処理されてデータベースに適用されます。私はこれに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(); 
} 

ないが、私はちょうど始めている:)

+0

appsettingsのredentials。{環境} .json? – lopezbertoni

+0

はい。しかし、WebJob実行ファイルからアクセスする方法はわかりません.WebJob実行可能ファイルは、MVCサイト外では独自の環境で実行されるようです。 –

+0

あなたはコンソールアプリケーションコードを投稿できますか?スタートアップクラスを追加してホスティング環境変数にアクセスする方法があります。 – lopezbertoni

答えて

1

を私が知っているように、Azure WebアプリケーションとWebJobはAzureポータルで設定されたApp設定と接続文字列を共有します。そこで、Azureポータルで接続文字列を定義し、次にConfigurationManagerを使用して接続文字列を取得します。私はあなたのためにこれを確認するための小さなテストを行った。

1値 '試験' を使用)を設定し、接続文字列 'MyConnectionと' enter image description here

2)は、接続

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ウェブジョブダッシュボード

enter image description here

+0

Thanx、Jambor。このアプローチは、appsettings.jsonで設定パラメータを設定している開発環境でどのように機能しますか? –

+0

startup.csに.AddJsonFile($ "appsettings。{env.EnvironmentName} .json"、オプション:true)があります。 JSONファイルを環境固有の名前でロードし、オプションでtrueを設定することができます。開発モードで実行している場合は、appsettings.Development.jsonが読み込まれ、既存の設定は新しい設定で上書きされます –

関連する問題