为什么发布 Azure 函数后出现内部服务器错误?

Why I get Internal Server Error after publishing Azure Function?

我在使用 Azure Sql 数据库的 Azure Functions 中创建了一个 API。 我有这条路线:

    [FunctionName("GetAllClassesForTeacher")]
    public IActionResult GetAllClassesForTeacher(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequestMessage req,
     ILogger log)
    {
        var headers = req.Headers;
        if (headers.TryGetValues("TeacherId", out var Teacher))
        {
            int TeacherId = Convert.ToInt32(Teacher.First());

            var result = _classDistributionServices.GetAllClassesForTeacher(TeacherId);

            if (result != null)
            {
                return new OkObjectResult(result);
            }
            return new NotFoundResult();
        }
        return new NotFoundResult();
    }

在本地测试时,它每次都有效。但是在 Azure 门户上发布之后,我从邮递员那里回来了:

{
"statusCode": 500,
"message": "Internal server error",
"activityId": "f98c4112-0c31-4841-99a5-c79dffa41d86"

我 tried/did 到现在为止:

但错误依然存在。 我有一种感觉,即使我已经注册了正确的IP,仍然是因为数据库防火墙?

你能帮帮我吗?

您可以通过几种方法找出问题所在:

1-启用 Application Insights 并使用实时指标捕获错误

2-使用 Kudu 并检查有关错误的更多详细信息(例如 https://myfunctionapp.scm.azurewebsites.net/azurejobs/#/functions

3-您还可以用 try/catch 包装您的代码,并在响应输出中抛出异常的详细信息。