Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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
Azure服务结构应用程序-主机名和主机IP地址_Azure_Azure Service Fabric_Azure Vm Scale Set - Fatal编程技术网

Azure服务结构应用程序-主机名和主机IP地址

Azure服务结构应用程序-主机名和主机IP地址,azure,azure-service-fabric,azure-vm-scale-set,Azure,Azure Service Fabric,Azure Vm Scale Set,从Azure service fabric应用程序如何获取为当前请求提供服务的节点的主机名和主机IP地址?请提出建议。SF可提供这些建议: Fabric\u NodeIPOrFQDN-集群清单文件中指定的节点的IP或FQDN。(例如本地主机或10.0.0.1) Fabric\u NodeName-运行进程的节点的节点名(例如\u node\u 0) 假设您使用的是C#,那么您可以通过environment.GetEnvironmentVariable获取环境变量,然后使用环境变量可以使用该类

从Azure service fabric应用程序如何获取为当前请求提供服务的节点的主机名和主机IP地址?请提出建议。

SF可提供这些建议:

  • Fabric\u NodeIPOrFQDN
    -集群清单文件中指定的节点的IP或FQDN。(例如本地主机或10.0.0.1)
  • Fabric\u NodeName
    -运行进程的节点的节点名(例如\u node\u 0)

假设您使用的是C#,那么您可以通过
environment.GetEnvironmentVariable

获取环境变量,然后使用环境变量可以使用该类。它有一个
NodeContext
属性,其中包含几个有趣的属性。在您的服务中,您可以获得如下所示的fqdn/ip地址:

var address = Context.NodeContext.IPAddressOrFQDN;

如果节点名与机器名无关,那么它是一个逻辑名。节点名称可以是用户定义的名称。我认为
Environment.MachineName
Context.NodeContext.IPAddressOrFQDN
最准确。

请添加更多详细信息。正在运行的工作负载。我们是在谈论使用service fabric SDK(有状态/无状态服务或参与者模型)的.net应用程序吗?我们正在Azure SF群集上部署.net无状态服务作为工作负载。@LoekD根据您的上述答复,我假设在service fabric的上下文中,其“节点名”必须被视为“主机名”,不是吗?是的,主机名(内部)/machinename/nodename,但不是连接到Azure负载平衡器公共IP的外部域名。@Peter Bons,拥有逻辑名称的好处是什么?虽然我们有MachineName,但为什么我们需要逻辑名称?是因为一台机器/虚拟机可以有多个节点,即Fabric.exe和FabricGateway.exe的多个实例吗?我不确定,因为我从未使用过它。我认为默认值是以实例号作为前缀的节点类型的名称。