関連する Web アプリケーションに繰り返しアクセスして変更を加える.netで Web ジョブを開発しています。Web アプリケーションの Web.config ファイルから Web ジョブ アプリケーションのアプリに db 接続文字列をコピーしました。次のコードは、webjob からデータベースへのアクセスを試みます。
関数.cs:
// This function will be triggered based on the schedule you have set for this WebJob
// This function will enqueue a message on an Azure Queue called queue
[NoAutomaticTrigger]
public static void ManualTrigger(TextWriter log, int value, [Queue("queue")] out string message)
{
var db = new ApplicationDbContext();
var vms = db.VMs.ToList();
var a = 1;
log.WriteLine("Function is invoked with value={0}", value);
message = value.ToString();
log.WriteLine("Following message will be written on the Queue={0}", message);
}
前の関数のこの行
var vms = db.VMs.ToList();
次のエラーをトリガーします。
An exception occurred while initializing the database. See the InnerException for details
Inner exception message: Cannot attach the file 'C:\Users\ernestbofill\Source\Repos\biocloud\site\TimeLeftJob\bin\Debug\aspnet-site-20150515045532.mdf' as database 'aspnet-site-20150515045532'.
次は、App.config と Web.config の両方の接続文字列です。現在、開発者のデバイスでこの Web ジョブを実行しているため、ローカル データベースにアクセスする必要があります。
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-site-20150515045532.mdf;Initial Catalog=aspnet-site-20150515045532;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
あなたは何か間違っていることを見つけることができますか?同じ db クエリが MVC Web アプリケーションでも機能します。EF データベースにアクセスする Web ジョブの例をオンラインで見つけることができませんでした。