gpt4 book ai didi

azure - 使用 Azure Functions v2 的 IWebJobsStartup

转载 作者:行者123 更新时间:2023-12-02 00:58:21 25 4
gpt4 key购买 nike

我正在尝试通过 Visual Studio 和 CLI 使用 V2 运行时创建一个 Azure 函数。但是当我运行它时,我看到以下错误:

[9/30/2018 3:11:06 PM] No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).

以下是azure函数运行时和核心工具版本

Azure Functions 核心工具 (2.0.3)函数运行时版本:2.0.12115.0

我还安装了服务总线扩展

enter image description here

我也尝试过通过 CLI 安装扩展。以下是项目.csproj:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AzureFunctionsVersion>V2</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.22" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>

注意 - 这是开箱即用的模板,未进行任何更改。

最佳答案

<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />

请删除此包引用并清理项目,它已导入到 Microsoft.NET.Sdk.Functions 中用于 VS 开发。再次导入它可能会导致像您所看到的那样的构建错误。

更新

由于您在构建的 Assets 中没有看到 function.json ,我担心您这边的 Microsoft.NET.Sdk.Functions 有问题,这无法将 .cs 文件中的触发器属性构建到 function.json。我的建议是

  1. 删除 Function SDK %userprofile%\.nuget\packages\microsoft.net.sdk.functions
  2. 通过 VS %localappdata%\AzureFunctionsTools 删除 Function CLI。
  3. 删除 VS %userprofile%\.templateengine 使用的模板引擎。
  4. 重新启动 VS 并创建一个新的 Function 项目,在创建/模板对话框的底部,请参阅确保所有模板都是最新的。等到它变为更新已准备就绪enter image description here enter image description here
  5. 点击刷新

以防万一您需要检查,我在 VS 中使用服务总线队列触发器模板。代码如下,.csproj 与没有 Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator 的问题相同。

    using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace FunctionApp1
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([ServiceBusTrigger("myqueue", Connection = "MyConnection")]string myQueueItem, ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}
}
}

以及[Functionproject]\bin\Debug\netstandard2.0中的文件夹结构。

enter image description here

关于azure - 使用 Azure Functions v2 的 IWebJobsStartup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52579283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com