C# Azure函数在我使用依赖项时停止工作,在本地工作

C# Azure函数在我使用依赖项时停止工作,在本地工作,c#,azure-functions,azure-function-app,azure-functions-runtime,azure-storage-queues,C#,Azure Functions,Azure Function App,Azure Functions Runtime,Azure Storage Queues,我正在尝试设置一个Azure函数,在消费模式下基于Linux,队列触发。 它在调试时在本地工作得很好(每个程序员都说),但在部署时什么也不会发生。我找不到任何日志 我重新开始,上传了一个空函数——它工作了,但当我添加自己的库时,它就停止了工作 然后我尝试删除我的库并重新上传“hello world”函数,但它仍然不起作用 这是host.json: { "logging": { "fileLoggingMode": "always

我正在尝试设置一个Azure函数,在消费模式下基于Linux,队列触发。 它在调试时在本地工作得很好(每个程序员都说),但在部署时什么也不会发生。我找不到任何日志

我重新开始,上传了一个空函数——它工作了,但当我添加自己的库时,它就停止了工作

然后我尝试删除我的库并重新上传“hello world”函数,但它仍然不起作用

这是host.json:

   {
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host.Results": "Information",
      "Function": "Information",
      "Host.Aggregator": "Information"
    },
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      }
    },
    "console": {
      "isEnabled": "true"
    }
  },
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=****;AccountKey=*****;BlobEndpoint=https://***.blob.core.windows.net/;TableEndpoint=https://*****.table.core.windows.net/;QueueEndpoint=https://****.queue.core.windows.net/;FileEndpoint=https://****.file.core.windows.net/",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  },
  "version": "2.0"
}
函数代码(不含我的库)仅适用于首次上载

[FunctionName("EmailQueueWorker")]
        //public static async Task Run(
        public static async Task Run(
            [QueueTrigger(queueName: "email", Connection = "AzureWebJobsStorage")] string queueItem,
            ILogger log
        )
        {
            log.LogWarning("Start run()");
        }

我做错了什么(或者在哪里可以找到日志?应用程序洞察是空的)?谢谢

一两周前我遇到了同样的问题;我敢打赌问题出在你和队列的连接上。作为比较,这是我的(工作)队列触发器函数的完整host.json:

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true
            }
        },
        "fileLoggingMode": "always",
        "logLevel": {
            "default": "Information",
            "Host.Results": "Error",
            "Function": "Trace",
            "Host.Aggregator": "Trace"
        }
    }
}
连接字符串

我们的logLevel部分有点不同,您会注意到这里没有任何连接字符串。我对Azure还很陌生,但据我所知,这并不是他们要去的地方

在Visual Studio 2019中,右键单击项目,然后发布。在操作下,单击管理Azure应用程序服务设置。在那里,您可以添加任何需要的连接字符串设置。如果需要指定存储帐户,则设置名称应为存储帐户的名称加上“\u storage”。例如,如果您的存储帐户名为MyVault,则设置的名称将为
MyVault\u storage

在VS代码中,使用它有点不同。您必须查看Azure中的“功能”,然后确保选择了Azure订阅(而不是本地副本!),并深入到“功能”、“应用程序设置”中,您可以在其中添加/编辑

在Azure门户中,您可以管理应用程序设置

日志

在Azure门户中,首先转到功能应用程序。单击您的主函数名。现在,在该功能的新菜单下,在“功能”子菜单下,单击“功能”。现在,您将看到组成队列触发器函数的所有不同函数的列表。其中应该有
EmailQueueWorker
——点击它。现在,您应该看到执行计数,您可以点击左侧菜单中的监视器,然后在中间区域登录。您可以根据需要启动/停止/清除


无论出于何种原因,我发现使用VisualStudio2019或VS代码流式传输实际日志数据比使用web控制台要快得多。web控制台有时似乎有点延迟。

我在一两周前遇到了同样的问题;我敢打赌问题出在你和队列的连接上。作为比较,这是我的(工作)队列触发器函数的完整host.json:

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true
            }
        },
        "fileLoggingMode": "always",
        "logLevel": {
            "default": "Information",
            "Host.Results": "Error",
            "Function": "Trace",
            "Host.Aggregator": "Trace"
        }
    }
}
连接字符串

我们的logLevel部分有点不同,您会注意到这里没有任何连接字符串。我对Azure还很陌生,但据我所知,这并不是他们要去的地方

在Visual Studio 2019中,右键单击项目,然后发布。在操作下,单击管理Azure应用程序服务设置。在那里,您可以添加任何需要的连接字符串设置。如果需要指定存储帐户,则设置名称应为存储帐户的名称加上“\u storage”。例如,如果您的存储帐户名为MyVault,则设置的名称将为
MyVault\u storage

在VS代码中,使用它有点不同。您必须查看Azure中的“功能”,然后确保选择了Azure订阅(而不是本地副本!),并深入到“功能”、“应用程序设置”中,您可以在其中添加/编辑

在Azure门户中,您可以管理应用程序设置

日志

在Azure门户中,首先转到功能应用程序。单击您的主函数名。现在,在该功能的新菜单下,在“功能”子菜单下,单击“功能”。现在,您将看到组成队列触发器函数的所有不同函数的列表。其中应该有
EmailQueueWorker
——点击它。现在,您应该看到执行计数,您可以点击左侧菜单中的监视器,然后在中间区域登录。您可以根据需要启动/停止/清除

无论出于何种原因,我发现使用VisualStudio2019或VS代码流式传输实际日志数据比使用web控制台要快得多。web控制台有时似乎有点延迟