带有eventData对象的EventHubTrigger C#不工作
在我遵循以下文章的说明之后 我创建了一个EventHubTrigger,如下所示:带有eventData对象的EventHubTrigger C#不工作,c#,azure,azure-functions,azure-eventhub,C#,Azure,Azure Functions,Azure Eventhub,在我遵循以下文章的说明之后 我创建了一个EventHubTrigger,如下所示: using System; public static void Run(string myEventHubMessage, ILogger log) { log.LogInformation($'C# Event Hub trigger function processed a message: {myEventHubMessage}'); } 这确实没有任何问题,但由于我确实需要额外的元信息,我将代码
using System;
public static void Run(string myEventHubMessage, ILogger log)
{
log.LogInformation($'C# Event Hub trigger function processed a message: {myEventHubMessage}');
}
这确实没有任何问题,但由于我确实需要额外的元信息,我将代码更改为以下内容(在第二篇链接文章中描述):
但是这段代码会导致以下错误消息(顺便说一句,我还绑定了使用不推荐的TraceWriter而不是ILogger来完全遵循文章,但这会导致相同的错误)
我现在的问题是,有没有人知道如何让这段代码运行
当然,这与程序集有关,但aricle指出,在联机门户编辑器中工作时,没有进一步的步骤可执行
男人先谢谢你
费利克斯
附言:
host.json:
{
"version": "2.0"
}
extensions.csproj的内容是:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<WarningsAsErrors />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />
</ItemGroup>
</Project>
netstandard2.0
好的,这个示例是针对函数1.x的。在2.x通常可用之后,我们创建的函数默认处于~2运行时,我们可以在host.json中看到“version”:“2.0”
请尝试下面的代码,元数据存储在Microsoft.Azure.EventHubs.EventData的SystemProperties
中
#r "../bin/Microsoft.Azure.EventHubs.dll"
using System;
using Microsoft.Azure.EventHubs;
public static void Run(EventData myEventHubMessage, ILogger log)
{
log.LogInformation($"EnqueuedTimeUtc={myEventHubMessage.SystemProperties.EnqueuedTimeUtc}");
log.LogInformation($"SequenceNumber={myEventHubMessage.SystemProperties.SequenceNumber}");
log.LogInformation($"Offset={myEventHubMessage.SystemProperties.Offset}");
}
还要注意,我们需要对C#中的字符串使用双引号“
,请参见代码中的”
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<WarningsAsErrors />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />
</ItemGroup>
</Project>
#r "../bin/Microsoft.Azure.EventHubs.dll"
using System;
using Microsoft.Azure.EventHubs;
public static void Run(EventData myEventHubMessage, ILogger log)
{
log.LogInformation($"EnqueuedTimeUtc={myEventHubMessage.SystemProperties.EnqueuedTimeUtc}");
log.LogInformation($"SequenceNumber={myEventHubMessage.SystemProperties.SequenceNumber}");
log.LogInformation($"Offset={myEventHubMessage.SystemProperties.Offset}");
}