加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

azure-sql-database – 从Azure中的WebJob访问SQL数据库

发布时间:2021-01-13 13:13:00 所属栏目:编程 来源:网络整理
导读:我打算行使WebJobs作为NServiceBus的轻量级更换品,可是想要起首验证可以从触发的WebJob处理赏罚措施举办例行的SQL Azure数据库查询吗?我的数据库会见将通过EntityFrameworks. 这个SO线程表白WebJobs不支持SQL数据库,但我但愿这只是意味着SQL数据库不能用作WebJob

我打算行使WebJobs作为NServiceBus的轻量级更换品,可是想要起首验证可以从触发的WebJob处理赏罚措施举办例行的SQL Azure数据库查询吗?我的数据库会见将通过EntityFrameworks.

这个SO线程表白WebJobs不支持SQL数据库,但我但愿这只是意味着SQL数据库不能用作WebJob处理赏罚措施的触发机制?

Azure Web Job – How to connect to an Azure MS SQL Database?

我没有找到宣布SQL数据库查询的WebJob示例,但因为WebJob可以会见与主WebSite沟通的应用措施设置,我假设可以行使数据库毗连具体信息?

办理要领

Webjobs是可以在Azure上运行的任何可执行文件(因此.NET措施运行正常).触发机制是特定的,不能行使SQL Azure,但您可以在webjob自己的可执行代码中运行SQL Azure.

譬喻,在对SQL Azure数据库执行查询并将功效写入设置的存储容器中的文本文件之前,此webjob会在’testwebjobsqueue’上守候动静’web-jobs-testing-sql’:

namespace AzureWebJobs
{
    class AzureSqlTest
    {
        static void Main()
        {
            JobHost host = new JobHost();
            host.RunAndBlock(); 
        }

        public static void SyndicateFiles([QueueInput("testwebjobsqueue")] string inputText,[BlobOutput("temp/WebJobs-log.txt")]TextWriter writer)
        {
            if (!inputText.StartsWith("web-jobs-testing-"))  
                return;

            writer.WriteLine(String.Format("Starting to do processing for " + inputText + " at {0}",DateTime.Now.ToShortTimeString()));
            string storageContainerName = ConfigurationManager.AppSettings["StorageContainerNameTemp"].ToLower();

            AzureStorageUtils.ConfigureStorage(storageContainerName);

            SQLTest sqlTest = new SQLTest();
            sqlTest.RunSqlQuery(inputText,writer);
            writer.WriteLine(String.Format("Syndication Finished at {0}",DateTime.Now.ToShortTimeString()));
        }
    }


    class SQLTest
    {
        public SQLTest()
        {

        }

        public void RunSqlQuery(string queueMessage,TextWriter writer)
        {
            if (queueMessage == "web-jobs-testing-sql")
            {
                string connectionString = "Server=tcp:YourDatabaseServerName.database.windows.net,1433;Database=YourDatabaseName;User ID=YourSQLAzureUserID;Password=YourStrongPassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;";
                SqlConnection sqlConnection1 = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand();


                cmd.CommandText = "SELECT * FROM Users";
                cmd.CommandType = CommandType.Text;
                cmd.Connection = sqlConnection1;

                sqlConnection1.Open();

                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    // Data is accessible through the DataReader object here.
                    while (reader.Read())
                    {
                        writer.WriteLine(reader.GetValue(1).ToString());
                    }
                    reader.Close();
                }
                sqlConnection1.Close();
            }
        }
    }
}

虽然最好将您的毗连字符串,存储容器名称等存储在托管webjob的网站的设置配置中(您可以在’设置选项卡’的’应用措施配置’和’毗连字符串’部门中执行此操纵’在天蓝色的派别网站中,因此您无法在网站上会见的文件中举办任何配置.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读