[英]IWebJobsStartup with Azure Functions v2
我试图通过visual studio和CLI创建一个带有V2运行时的azure函数。 但是当我运行它时,我看到以下错误:
[9/30/2018 3:11:06 PM]找不到工作职能。 尝试公开您的工作类和方法。 如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等)。
以下是azure函数运行时和核心工具版本
Azure Functions核心工具(2.0.3)函数运行时版本:2.0.12115.0
我也安装了服务总线扩展
我也试过通过CLI安装扩展。 以下是project.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开发。 再次导入可能会导致您看到的建筑错误。
更新
由于你没有在构建资产中看到function.json
,我担心你身边的Microsoft.NET.Sdk.Functions
有问题,它无法在.cs文件中构建触发器属性到function.json
。 我的建议是
%userprofile%\\.nuget\\packages\\microsoft.net.sdk.functions
。 %localappdata%\\AzureFunctionsTools
删除功能CLI。 %userprofile%\\.templateengine
使用的模板引擎。 Making sure all templates are up to date
。 等到它更改为Updates are ready
。 Refresh
。 为了防止您需要检查,我在VS中使用Service Bus队列触发器模板。 代码如下,.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
的文件夹结构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.