c# - 本地实现的 Azure 功能无法在云端运行

标签 c# .net azure azure-functions azure-functions-runtime

我有以下函数,我在本地定义了该函数,并且能够正常调试它。

    [FunctionName("QueueTrigger")]
    public static void DUMMYFUNCTION(
    [QueueTrigger("myqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
    {
        log.Info($"C# function processed: {myQueueItem}");
    }

在本地,“AzureWebJobsStorage”在 local.settings.json 文件中定义,以使用具有“myqueue”的存储帐户。在Azure上的功能设置中,“AzureWebJobsStorage”也设置为正确的连接字符串(与本地设置的相同)。这意味着,我没有遇到与Azure Function does not execute in Azure (No Error)中相同的问题。

现在,我使用 Visual Studio Team Service 将源代码托管在 git 存储库中。我已将部署配置为使用源代码并部署其中包含的功能。 我认为该问题与 VSTS 无关,因为部署已成功执行并且该函数显示在我的函数列表中:

Queue function on azure

部署完成后,生成文件function.json,内容如下:

{
  "generatedBy": "Microsoft.NET.Sdk.Functions.Generator-1.0.8",
  "configurationSource": "attributes",
  "bindings": [
  {
     "type": "queueTrigger",
     "connection": "AzureWebJobsStorage",
     "queueName": "myqueue",
     "name": "myQueueItem"
  }],
  "disabled": false,
  "scriptFile": "../bin/myAssembly.dll",
  "entryPoint": "myAssembly.MyClass.DUMMYFUNCTION"
}

问题是,当我在本地调试时将一个项目添加到队列中时,该函数会被执行,但当该函数在azure上运行时,它不会执行。

我需要对代码进行哪些更改才能使其在 Azure 上也正常工作?我认为它可以开箱即用。

最佳答案

你的函数正在运行吗?如果您进入 KUDU,您是否看到您的函数实际运行的任何日志?

如果您的函数根本没有运行,则 Azure Functions 2(使用 .NET Standard 2 框架)仍处于预览版(测试版)状态。因此,当您通过部署函数时,请确保进入函数应用的“应用程序设置”并将 FUNCTIONS_EXTENSION_VERSION 值设置为 beta

关于c# - 本地实现的 Azure 功能无法在云端运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48952452/

相关文章:

c# - 带有 LUIS 的 Microsoft Bot 框架

javascript - 将单个模型值(字符串)作为参数传递给可重用的 javascript 函数,以在 MVC View 中设置表格单元格类

javascript - 如何在 javascript 中做 LINQ SelectMany() 的等价物

c# - 使用 FindOneAndUpdateOptions 类 C# 驱动程序的 findAndModify 中的 MongoDB 映射属性 'new'

c# - 如何在现有 PDF 中使用 iTextSharp 插入指向另一个页面的超链接?

c# - 将 String.Replace 替换为 Regex.Replace

c# - .dll 文件不可访问

.net - ASP.NET MVC - Response.Write 代码 - 将其放入 Controller、SingleFile 或 Code behind

azure - .NET Core 项目的 Azure Pipelines 中不必要的启动命令

azure - 图像托管 Azure