c# - 为什么发布 Azure Function 后出现内部服务器错误?

标签 c# azure azure-sql-database azure-functions internal-server-error

我在 Azure Functions 中创建了一个使用 Azure Sql 数据库的 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 Portal 上发布后,我从 postman 那里得到了回复:

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

到目前为止我已经尝试/做过的事情:

  • 从 Azure Function 获取 IP 并将其注册到防火墙中,并且 来自 Azure Sql Server 的虚拟网络。
  • 我已确保 local.settings.json 中的 ConnectionString 已上传至门户。
  • 我已在 API 管理中声明了此路由。

但错误仍然存​​在。 我感觉即使我注册了正确的IP,仍然是因为数据库防火墙的原因?

你能帮我吗?

最佳答案

有几种方法可以帮助您找出问题所在:

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

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

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

关于c# - 为什么发布 Azure Function 后出现内部服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61464748/

相关文章:

azure - 如何使用 SQL Azure 数据库作为后端在 Azure 上安装 Umbraco?

sql - 使用 BETWEEN 条件对 INNER JOIN 进行性能调整

c# - 使用 Watin,我如何等到元素获得某个 CSS 类?

azure - Pandas 到 Pyspark 警告消息 : "iteritems is deprecated and will be removed in a future version"

c# - Azure 表随机返回 null 值

javascript - 了解 ajax 在做什么

azure-sql-database - Azure SQL DW 中的 regexp_replace

c# - 在 asp.net 中将 javascript 添加到页脚的“最简洁”方式

c# - WP7 - 方向改变时只旋转一些物体

c# - 在移动设备上运行时更改 Gridview 列的可见性?