当前位置: 首页 > 知识库问答 >
问题:

未找到工作职能。尝试将您的工作类别和方法公开化

路裕
2023-03-14

首先,我已经看了其他有同样错误信息的SO帖子,似乎没有一个能解决我的问题。我尝试了许多排列和选择。我的函数构建得很好,但是不能在CLI中运行,我得到了以下神秘的错误。MSFT文档似乎也没有答案。

未找到作业函数。试着公开你的作业类和方法。如果您使用的是绑定扩展(例如ServiceBus、定时器等),请确保在启动代码中调用了扩展的注册方法(例如config.UseServiceBus(),config)。UseTimers()等)。

我正在尝试运行计时器作业,然后将消息集合写入事件中心。我错过了什么?我已经为此奋斗了几个小时。

功能:

    [FunctionName("CreateData")]
    public static async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
        [EventHub("murraytest", Connection = "evingest")] IAsyncCollector<string> myeventhub,
        TraceWriter log)
    {
        await myeventhub.AddAsync("data1");
        await myeventhub.AddAsync("data2");
        await myeventhub.AddAsync("data3");

        log.Info($"COMPLETED: {DateTime.Now}");
    }

local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "Eventhub": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "",
    "evingest": "Endpoint=sb://example.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=LtcqBLT5VWjg0dGMdIvxCcEGs8902010Y6y14iGg="

  }
}

function.json -缺少任何eventhub绑定!

{
  "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0",
  "configurationSource": "attributes",
  "bindings": [
    {
      "type": "timerTrigger",
      "schedule": "0 */5 * * * *",
      "useMonitor": true,
      "runOnStartup": false,
      "name": "myTimer"
    }
  ],
  "disabled": false,
  "scriptFile": "..\\bin\\AzFuncs.dll",
  "entryPoint": "AzFuncs.Function1.Run"
}

共有3个答案

长孙鸿波
2023-03-14

您应该升级到最新的Microsoft.NET.Sdk.Functions1.0.6截至今天)和Microsoft.Azure.WebJobs.Service.Bus2.1.0-beta4如果在完整框架上运行)。您可能需要先删除ServiceBus引用才能升级SDK。

还需要删除Microsoft.Azure.Eventhubs包。所有相关类型等都在Microsoft.Azure.WebJobs.Service.Bus

还记得在包管理器中检查“包含预发布”以找到2.1.0-beta4

宰父焕
2023-03-14

如果您在. NET 5中使用过程外执行模型的Azure Functions,则需要将FunctionName替换为Function,否则将不会检测到该函数。

之前:

[FunctionName("CreateData")]

之后:

[Function("CreateData")]
匡旭东
2023-03-14

我发现了另一个问题,特别是如果您正在从另一个项目或版本转换。

在 VS csproj 文件中,确保 AzureFunctionsVersion 存在

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>
...etc

工具会自动添加此内容,但如果您要修改缺少此内容的项目,则不会添加此内容。希望这有助于您节省花费我的3个小时:-)。

 类似资料:
  • 我已经在Visual Studio 2017中创建了一个Azure Function应用程序,并且可以使用Visual Studio发布功能毫无问题地将其发布到Azure(右键单击项目,然后选择发布)。 由于从Visual Studio的开发人员实例部署不是理想的持续集成策略,我已经与TeamCity和Octopus创建了一个部署管道,其中TeamCiti构建了Azure功能应用程序,Octopu

  • 我正在运行本地m/c代码。 在上面的代码中,我试图在条目上触发Topic的订阅。 但当我运行代码时,它给了我一个错误 找不到函数。尝试公开作业类和方法 我在public Function类中尝试了相同的方法,但不起作用。 但是当我将ServiceBusTrigger更改为QueueTrigger时,它起作用了。 我已经正确设置了下面的配置。 我哪里说错了?

  • 我很感激有几个这样的问题,但我很确定我已经经历了一切,已经到了“到底是什么”的地步。 我在Azure上推出了一个v3函数,但是没有成功地将这个函数发布到.....功能。我担心Azure CLI任务会破坏一些东西。 我函数的启动是: 以及其中的函数: 我相当确定我已经安装了所有的软件包。通过网络浏览到函数似乎是可以的。 Log Analytics 的自定义日志中也不会显示任何内容。不过,该表确实已创

  • 我已经创建了一个.Net 5 Azure函数应用程序项目,并使用程序.cs文件遵循隔离过程,并且它工作正常。现在我想将框架版本从dotnet 5.0更改/升级到6.0,因此更改了项目属性页中的版本,并更改了csproj文件中的版本。并将属性也从 Function 更改为 FunctionName,但它在运行时在 cmd 中显示以下错误。 添加它显示以下进程窗口超过 1 小时,当我运行我的解决方案。

  • 我正在探索在上运行函数应用程序。这是我到目前为止所做的。 下面是新的< code>Program类,它取代了< code>Startup类: 我还有一个非常简单的HTTP触发函数: 我已经修改了我的 ,以指示函数必须在隔离模式下运行: 我使用以下参数启动函数: 问题 当我启动应用程序时,我收到以下警告消息: 我相信我在处于隔离进程中。我错过了什么? 更新 以下是版本信息:

  • 当我尝试在Linux(Ubuntu 18.04)中构建azure函数时,返回错误。以下是我在从git克隆存储库process.After中遵循的步骤。 在输出返回之后, 下面是关于我的系统的信息,