Azure sql database Azure逻辑应用程序内部服务器错误500

Azure sql database Azure逻辑应用程序内部服务器错误500,azure-sql-database,azure-functions,azure-logic-apps,Azure Sql Database,Azure Functions,Azure Logic Apps,我正在尝试创建一个azure函数,该函数在逻辑应用程序中触发, 该函数的目的是对某些网站进行web爬网,获取所需信息,将其与Azure中的SQL Server数据库进行比较,如果我们已经拥有该信息,则进行比较(如果没有添加该信息) 我的问题是,每当我运行它时,我都会遇到Server500错误,我认为这是访问数据库造成的。帮忙 public static async Task<IActionResult> Run( [HttpTrigger(Authori

我正在尝试创建一个azure函数,该函数在逻辑应用程序中触发, 该函数的目的是对某些网站进行web爬网,获取所需信息,将其与Azure中的SQL Server数据库进行比较,如果我们已经拥有该信息,则进行比较(如果没有添加该信息)

我的问题是,每当我运行它时,我都会遇到Server500错误,我认为这是访问数据库造成的。帮忙

   public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log
            )
        {
            log.LogInformation("C# HTTP trigger function processed a request.");


            string RequestBody = await new StreamReader(req.Body).ReadToEndAsync();


            {
                return await CrawlBlog(0, RequestBody);
            }

        }



        private static async Task<IActionResult> CrawlBlog(int Picker, string req)
        {

            int BlogPicker = Picker;

            string TheResult = req;
            //Get the url we want to test
            var Url = "";
            if (BlogPicker == 0)
            {
                Url = "*********";
            }
            else if (BlogPicker == 1)
            {
                Url = "*********";
            }
            /*
            else if (BlogPicker == 2)
            {
                Url = "https://azure.microsoft.com/en-in/blog/?utm_source=devglan";
            }
            */
            else
            {
                TheResult = "False we got a wrong pick";
                return (ActionResult)new OkObjectResult
                    ( new {TheResult });
                    }

            var httpClient = new HttpClient();
            var html =  await httpClient.GetStringAsync(Url);
            var htmlDocument = new HtmlDocument();

            htmlDocument.LoadHtml(html);


            //a list to add all availabel blogs we found
            var Blog = new List<BlogStats>();

            switch (BlogPicker)
            {
                case 0:
                    {
                        var divs =
                        htmlDocument.DocumentNode.Descendants("div")
                            .Where(node => node.GetAttributeValue("class", "").Equals("home_blog_sec_text")).ToList();



                        foreach (var divo in divs)
                        {
                            var Blogo = new BlogStats
                            {

                                Summary = divo.Descendants("p").FirstOrDefault().InnerText,

                                Link = divo.Descendants("a").FirstOrDefault().ChildAttributes("href").FirstOrDefault().Value,

                                Title = divo.Descendants("a").FirstOrDefault().InnerText
                            };

                            Blog.Add(Blogo);


                        }

                        break;
                    }

                case 1:
                    {
                        var divs =
                        htmlDocument.DocumentNode.Descendants("div")
                            .Where(node => node.GetAttributeValue("class", "").Equals("post_header_title two_third last")).ToList();

                        foreach (var divo in divs)
                        {
                            //string TheSummary = "we goofed";

                            var ThePs = divo.Descendants("p").ToList();


                            var Blogo = new BlogStats
                            {


                                Summary = ThePs[1].GetDirectInnerText(),


                                Link = divo.Descendants("a").LastOrDefault().ChildAttributes("href").FirstOrDefault().Value,

                                Title = divo.Descendants("a").FirstOrDefault().InnerText

                            };

                            Blog.Add(Blogo);


                        }

                        break;
                    }


            }



            TheResult = await SqlCheck(Blog[0].Title, Blog[0].Summary, Blog[0].Link); //error 500


            return (ActionResult)new OkObjectResult
            (
                new
                {
                    TheResult
                }
                );

        }

        public static async Task<string> SqlCheck(string Tit, string Sumy, string Lin)
        {

            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
            builder.DataSource = "flygon.database.windows.net";
            builder.UserID = "*****";
            builder.Password = "********";
            builder.InitialCatalog = "torkoal";

            System.Data.DataSet ds = new System.Data.DataSet();

            SqlConnection connection = new SqlConnection(builder.ConnectionString);

            connection.Open();



            SqlCommand CheckCommand = new SqlCommand("SELECT * FROM TableBoto WHERE  Link = @id3 ", connection);

            CheckCommand.Parameters.AddWithValue("@id3", Lin);

            SqlDataAdapter dataAdapter = new SqlDataAdapter(CheckCommand);



            dataAdapter.Fill(ds);

            int i = ds.Tables[0].Rows.Count;


            if (i > 0)
            {


                return $" We got a Duplicates in title : {Tit}";
            }



            try
            {

                {



                    string query = $"insert into TableBoto(Title,Summary,Link) values('{Tit}','{Sumy}','{Lin}');";

                    SqlCommand command = new SqlCommand(query, connection);



                    SqlDataReader reader = await command.ExecuteReaderAsync();



                    reader.Close();
                }
            }

            catch (SqlException)
            {
                // Console.WriteLine(e.ToString());
            }


            connection.Close();



            return $" Success Ign +{Tit} + Ign {Sumy}+ Ign {Lin} Ign Success SQL ";

        }
    }
公共静态异步任务运行(
[HttpTrigger(AuthorizationLevel.Function,“get”,“post”,Route=null)]HttpRequest请求,ILogger日志
)
{
LogInformation(“C#HTTP触发器函数处理了一个请求。”);
string RequestBody=等待新的StreamReader(req.Body).ReadToEndAsync();
{
返回等待爬网日志(0,RequestBody);
}
}
私有静态异步任务爬网日志(整型选择器,字符串请求)
{
int BlogPicker=Picker;
字符串TheResult=req;
//获取我们要测试的url
var Url=“”;
如果(BlogPicker==0)
{
Url=“**********”;
}
else if(BlogPicker==1)
{
Url=“**********”;
}
/*
else if(BlogPicker==2)
{
Url=”https://azure.microsoft.com/en-in/blog/?utm_source=devglan";
}
*/
其他的
{
TheResult=“False我们选错了”;
返回(ActionResult)新的OkObjectResult
(新{TheResult});
}
var httpClient=新的httpClient();
var html=await httpClient.GetStringAsync(Url);
var htmlDocument=新的htmlDocument();
htmlDocument.LoadHtml(html);
//添加我们找到的所有可用标签博客的列表
var Blog=新列表();
交换机(BlogPicker)
{
案例0:
{
var divs=
htmlDocument.DocumentNode.substands(“div”)
.Where(node=>node.GetAttributeValue(“类”).Equals(home\u blog\u sec\u text)).ToList();
foreach(divs中的var divo)
{
var Blogo=新的BlogStats
{
Summary=divo.substands(“p”).FirstOrDefault().InnerText,
Link=divo.subjections(“a”).FirstOrDefault().ChildAttributes(“href”).FirstOrDefault().Value,
Title=divo.subjects(“a”).FirstOrDefault().InnerText
};
Blog.Add(Blogo);
}
打破
}
案例1:
{
var divs=
htmlDocument.DocumentNode.substands(“div”)
.Where(node=>node.GetAttributeValue(“类”).Equals(post_header_title two_third last)).ToList();
foreach(divs中的var divo)
{
//string TheSummary=“我们搞错了”;
var ThePs=divo.substands(“p”).ToList();
var Blogo=新的BlogStats
{
Summary=ThePs[1]。GetDirectInnerText(),
Link=divo.subscriptions(“a”).LastOrDefault().ChildAttributes(“href”).FirstOrDefault().Value,
Title=divo.subjects(“a”).FirstOrDefault().InnerText
};
Blog.Add(Blogo);
}
打破
}
}
TheResult=await SqlCheck(博客[0]。标题,博客[0]。摘要,博客[0]。链接);//错误500
返回(ActionResult)新的OkObjectResult
(
新的
{
结果
}
);
}
公共静态异步任务SqlCheck(字符串Tit、字符串Sumy、字符串Lin)
{
SqlConnectionStringBuilder=新的SqlConnectionStringBuilder();
builder.DataSource=“flygon.database.windows.net”;
builder.UserID=“*******”;
builder.Password=“*******”;
builder.InitialCatalog=“torkoal”;
System.Data.DataSet ds=新的System.Data.DataSet();
SqlConnection=newsqlconnection(builder.ConnectionString);
connection.Open();
SqlCommand CheckCommand=new SqlCommand(“从表格BOTO中选择*链接=@id3”,连接);
CheckCommand.Parameters.AddWithValue(“@id3”,Lin);
SqlDataAdapter dataAdapter=新的SqlDataAdapter(CheckCommand);
dataAdapter.Fill(ds);
int i=ds.Tables[0].Rows.Count;
如果(i>0)
{
return$“我们得到了一个重复的标题:{Tit}”;
}
尝试
{
{
字符串查询=$“插入到TableBoto(标题、摘要、链接)值({Tit}',{Sumy}',{Lin}');”;
SqlCommand=newsqlcommand(查询、连接);
SqlDataReader=等待命令。ExecuteReaderAsync();
reader.Close();
}
}
捕获(SqlException)
{
//Console.WriteLine(如ToString());
}
connection.Close();
返回$“Success Ign+{Tit}+Ign{Sumy}+Ign{Lin}Ign Success SQL”;
}
}

500 HTTP状态代码是一种通用代码,这意味着服务器由于某些问题无法处理请求,第一步: