我正在.net中开发一个网络作业,它将经常访问和更改相关的网络应用程序。我已将 db 连接字符串从 web 应用程序上的 Web.config 文件复制到 webjob 应用程序上的应用程序。以下代码尝试从 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 中的连接字符串。现在我正在我的开发人员设备上运行这个网络作业,所以它应该访问本地数据库。
<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 数据库的网络作业示例。