首页 > 解决方案 > Azure 函数:HttpTrigger 和输出队列返回“内部服务器错误”

问题描述

我有以下功能代码:

public static class FunctionCheckEmail
{
    [FunctionName("FunctionCheckEmail")]
    public static IActionResult Run(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
        [Queue("email-message-admin-confirmation", Connection = "StorageConnectionString")]CloudQueue outputQueue,
        ExecutionContext context,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        return new AcceptedResult();
    }
}

它回来了Internal Server Error

如果我删除队列绑定,那么它可以工作:

public static class FunctionCheckEmail
{
    [FunctionName("FunctionCheckEmail")]
    public static IActionResult Run(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
        ExecutionContext context,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        return new AcceptedResult();
    }
}

队列绑定的其他功能可以正常工作:

public static class FunctionWarningNotification
{
    [FunctionName("FunctionWarningNotification")]
    public static void Run(
        [QueueTrigger("emails-warning-notification", Connection = "StorageConnectionString")]string myQueueItem,
        [SendGrid] out SendGridMessage message,
        ExecutionContext context,
        ILogger log)
    {
        //....
    }
}

主机.json:

{
  "version": "2.0",
  "extensions": {}
}

local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
    "AzureWebJobsSendGridApiKey": "XXXX",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "StorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=domainregistration;AccountKey=XXXX"
  }
}

怎么了?

标签: c#azureazure-functions

解决方案


我找到了问题的解决方案 - nuget 包 WindowsAzure.Storage(版本 9.3.3),使用依赖项项目拉到我的 Azure 应用程序,破坏了这个绑定


推荐阅读