C# Azure函数EventHubTrigger运行多个实例
我在运行多个Azure函数实例时遇到问题,这些函数本应以同一IoTHub端点(默认端点)为目标,但以不同的用户组为目标(所需的组在门户上创建)。基本上,我想处理相同的消息两次,但在不同的功能。所以我编写了两个功能项目,它们具有相同的设置(相同的存储、相同的端点和配置),并且只针对不同的消费群体,如这里提供的示例所示 如果我分别运行每个项目,它们都可以正常工作,问题是如果我先运行任何一个项目,然后启动第二个项目,我会得到一个错误,即IServiceProvider已被处理。输出窗口中出现错误: 引发异常:Microsoft.Azure.WebJobs.Script.WebHost.dll中的“System.NullReferenceException” 函数实现尽可能简单:C# Azure函数EventHubTrigger运行多个实例,c#,azure,azure-functions,C#,Azure,Azure Functions,我在运行多个Azure函数实例时遇到问题,这些函数本应以同一IoTHub端点(默认端点)为目标,但以不同的用户组为目标(所需的组在门户上创建)。基本上,我想处理相同的消息两次,但在不同的功能。所以我编写了两个功能项目,它们具有相同的设置(相同的存储、相同的端点和配置),并且只针对不同的消费群体,如这里提供的示例所示 如果我分别运行每个项目,它们都可以正常工作,问题是如果我先运行任何一个项目,然后启动第二个项目,我会得到一个错误,即IServiceProvider已被处理。输出窗口中出现错误: 引
[FunctionName("MessageFunction")]
public static async Task Run([EventHubTrigger("myActualEventHubName", Connection = "HubConnection", ConsumerGroup = "StoreMap")]OrderRecord message, ILogger log)
{
try
{
if (message != null)
{
log.LogInformation($"Got a valid message");
await Task.Delay(1000);
}
log.LogInformation($"Event Hub trigger function processed a message: {message}");
}
catch (Exception e)
{
log.LogError("Error while processing.", e);
}
}
这是可以实现的,还是我遗漏了什么,或者这只是某个库中的一个bug?感谢您的帮助。
.Net核心2.1
工具:
VisualStudio 15.9.2
Azure功能和Web作业工具15.10.2046.0
已安装的Nugets:
Microsoft.NET.Sdk.Functions 1.0.24
Microsoft.Azure.WebJobs.Extensions.EventHubs 3.0.1它是由占用的TCP端口引起的。当函数主机在本地启动时,默认情况下它侦听端口7071。我们需要指定不同的端口以允许多个实例一起运行
右键单击您的项目>属性>调试,在应用程序参数部分添加
主机启动-端口7072
似乎这可能是由于从同一台机器上运行多个函数造成的,如果我有一个实例部署在云上,另一个在我自己的机器上运行,那么一切似乎都正常。