Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure函数EventHubTrigger运行多个实例_C#_Azure_Azure Functions - Fatal编程技术网

C# Azure函数EventHubTrigger运行多个实例

C# Azure函数EventHubTrigger运行多个实例,c#,azure,azure-functions,C#,Azure,Azure Functions,我在运行多个Azure函数实例时遇到问题,这些函数本应以同一IoTHub端点(默认端点)为目标,但以不同的用户组为目标(所需的组在门户上创建)。基本上,我想处理相同的消息两次,但在不同的功能。所以我编写了两个功能项目,它们具有相同的设置(相同的存储、相同的端点和配置),并且只针对不同的消费群体,如这里提供的示例所示 如果我分别运行每个项目,它们都可以正常工作,问题是如果我先运行任何一个项目,然后启动第二个项目,我会得到一个错误,即IServiceProvider已被处理。输出窗口中出现错误: 引

我在运行多个Azure函数实例时遇到问题,这些函数本应以同一IoTHub端点(默认端点)为目标,但以不同的用户组为目标(所需的组在门户上创建)。基本上,我想处理相同的消息两次,但在不同的功能。所以我编写了两个功能项目,它们具有相同的设置(相同的存储、相同的端点和配置),并且只针对不同的消费群体,如这里提供的示例所示 如果我分别运行每个项目,它们都可以正常工作,问题是如果我先运行任何一个项目,然后启动第二个项目,我会得到一个错误,即IServiceProvider已被处理。输出窗口中出现错误:

引发异常:Microsoft.Azure.WebJobs.Script.WebHost.dll中的“System.NullReferenceException”

函数实现尽可能简单:

    [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

似乎这可能是由于从同一台机器上运行多个函数造成的,如果我有一个实例部署在云上,另一个在我自己的机器上运行,那么一切似乎都正常。