简体   繁体   English

Azure函数:HttpTrigger和输出队列返回“内部服务器错误”

[英]Azure function : HttpTrigger and output queue returned “Internal Server Error”

I have the following code of function: 我有以下功能代码:

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();
    }
}

It returned Internal Server Error . 它返回Internal Server Error

If I remove Queue binding then it works: 如果我删除队列绑定,那么它将起作用:

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();
    }
}

Other function with Queue binding works fine: 队列绑定的其他功能可以正常工作:

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)
    {
        //....
    }
}

host.json: host.json:

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

local.settings.json: 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"
  }
}

what is wrong? 怎么了?

我找到了解决问题的方法-nuget程序包WindowsAzure.Storage(版本9.3.3),通过依赖项项目拖到我的Azure应用中,打破了此绑定

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM