Azure Web作业-如何连接到Azure MS SQL数据库?

Azure Web作业-如何连接到Azure MS SQL数据库?,azure,azure-webjobs,Azure,Azure Webjobs,我有一个MVC网站发布到Azure,它使用Azure SQL数据库 现在我们需要运行一个计划任务来发送短信提醒。我的印象是Azure Web Jobs非常适合这个应用程序,但在启动和运行它时遇到了一些问题 我已将控制台应用程序添加到我的网站解决方案中,并由控制台应用程序中的EF数据模型引用(我想将其发布为web作业) 当前的控制台应用程序如下所示: class Program { static void Main(string[] args) { JobHost

我有一个MVC网站发布到Azure,它使用Azure SQL数据库

现在我们需要运行一个计划任务来发送短信提醒。我的印象是Azure Web Jobs非常适合这个应用程序,但在启动和运行它时遇到了一些问题

我已将控制台应用程序添加到我的网站解决方案中,并由控制台应用程序中的EF数据模型引用(我想将其发布为web作业)

当前的控制台应用程序如下所示:

 class Program
{
    static void Main(string[] args)
    {
        JobHost host = new JobHost();
        host.RunAndBlock();
    }

    public static void ProcessNotifications()
    {
        var uow = new KirkleesDatabase.DAL.UnitOfWork();
        uow.CommunicationRepository.SendPALSAppointmentReminders();
    }

}
运行console应用程序将引发异常:

其他信息:缺少用户帐户连接字符串。这可以通过“AzureJobsData”连接字符串或构造函数进行设置

这表明Web作业专门查找指向存储帐户的连接字符串。但是,我希望web作业查询Azure数据库,而不是使用存储

这可行吗


谢谢,

不幸的是,WebJobs SDK不支持SQL数据库作为触发器。对于触发器,它只支持Azure存储(Blob、队列和表)


如本文所示,您可以从web作业访问Azure SQL数据库。

正如Victor所写,sdk事件由Blob、队列和表触发。
一个满足您需求的简单解决方案:使用pollig方法编写一个控制台应用程序。不需要sdk。细节在本书开头


要创建web作业,您不必使用webjobs sdk,您可以使用几种类型的可执行文件(.exe、.cmd、.js、.php、.py、…)


尝试使用此新的visual studio加载项:,按照此处的步骤在web应用程序和控制台应用程序之间建立链接,当发布到Azure站点时,控制台应用程序将作为webjob部署。

给webjob新手的建议。这个被接受的答案是正确的,SQL数据库不能用作调用WebJob处理程序的触发机制,但根据对我关于这个问题的SO问题的回答,WebJob处理程序中的常规SQL数据库活动是可以的@camelCase—我认为公认的答案应该明确指出,正如您所说,在WebJobs sdk中,SQL数据库不支持作为触发器。如果有人刚刚阅读了答案,我想可能会得出结论:Azure WebJobs中根本不支持数据SQL数据库访问。@Victor-请查看我在和上的评论。我认为您的响应和Amit的响应令人困惑,应该修改。错误消息表明WebJob正在查找仅用于触发器的存储帐户连接字符串。访问.NET SQL API以在WebJob中存储是可以的。可能存在重复的
while(true)
{
  if ("isthereworktodo?")
  {
    var uow = new KirkleesDatabase.DAL.UnitOfWork();
    uow.CommunicationRepository.SendPALSAppointmentReminders();
  }
  Thread.Sleep(10000);  // set an appropriate sleep interval
}