Azure InstanceInput 终结点使用情况

标签 azure

有人可以发布使用 InstanceInput 端点的示例代码吗? 我在辅助角色中使用了以下配置,其中示例 WCF 服务在端口 8080 进行监听。

<Endpoints>
  <InstanceInputEndpoint name="InstanceAccess" protocol="tcp" localPort="8080">
    <AllocatePublicPortFrom>
      <FixedPortRange max="10105" min="10101" />
    </AllocatePublicPortFrom>
  </InstanceInputEndpoint>
</Endpoints>

但是我无法使用任何端口 10101 到 10105 从外部使用者访问此 WCF 服务。我们是否应该使用 Azure 服务的公共(public) DNS 名称以及给定范围内的公共(public)端口?

此外,我无法从辅助角色 OnStart() 方法中访问此端点详细信息。我使用了 RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["InstanceAccess"]。但它不返回 RoleInstanceEndpoint。我在这里遗漏了什么吗?

最佳答案

Here是一个示例 Visual Studio 解决方案,它使用 Azure InstanceInput 终结点并在辅助角色上托管 WCF 服务。可以使用 Azure DNS 名称和映射到该实例的公共(public)端口来访问在每个单独实例上运行的 WCF 服务。我使用了以下端点配置。

  <Endpoints>
      <InstanceInputEndpoint name="Endpoint1" protocol="tcp" localPort="10100">
        <AllocatePublicPortFrom>
          <FixedPortRange max="10110" min="10106" />
        </AllocatePublicPortFrom>
      </InstanceInputEndpoint>
    </Endpoints>

不知何故无法从 WorkerRole 中访问此端点(OnStart() 和 Run() 方法)。所以我使用了“localhost”。

  string endpointIP = "localhost:10100";

  if (RoleEnvironment.CurrentRoleInstance.InstanceEndpoints.Keys.Contains("Endpoint1"))
  {
      IPEndPoint externalEndPoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint;
      endpointIP = externalEndPoint.ToString();
  }

该解决方案还包含一个控制台客户端,它使用托管 DNS 名称来调用这些单独的 WCF 服务。

关于Azure InstanceInput 终结点使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201660/

相关文章:

python - Azure-sdk-for-python AKS : how to add a new nodepool using

json - Oracle JSON 交付到 Azure

azure - 如何在 Azure Kubernetes 服务上模拟可用区中断?

powershell - 如何在 Powershell 中实例化必须从 .Net 抽象类派生的对象

Azure 函数支持连接池或任何其他方式重用同一数据库实例

azure - 如何在 ARM 模板的输出部分获取 key 的最新版本?

Windows Azure 分页大型数据集解决方案

asp.net - 部署到 Azure 后出现编译错误

mysql - Azure MySql + Sequelize 之间的连接

c# - 使用 C# 删除新门户 Azure 上的现有 VHD