gpt4 book ai didi

c# - Azure 计算模拟器中的内部端口冲突

转载 作者:行者123 更新时间:2023-12-03 03:20:22 24 4
gpt4 key购买 nike

我有一个内部端点设置如下:

<InternalEndpoint name="TcpSvcEndpoint" protocol="tcp" port="20000" />

该端点将由 NetTcp WCF 服务使用。如果我有 1 个实例在计算模拟器中运行,配置工作正常。但是,如果计算模拟器中有 2 个或更多实例(Visual Studio 调试 Azure 项目),则会将相同的端口分配给所有实例。这当然会导致所有服务的 WCF NetTcp 初始化失败(第一个实例除外),并出现预期的异常“IP 端点上已经有一个监听器。请确保 ..... SocketException: 每个套接字只有一次使用”。 ....”。

我的理解是模拟器将为每个实例增加端口。如果情况并非如此,如何在 Visual Studio 中调试时在计算模拟器上测试多个实例?

我不想使用带“*”的动态端口设置。

为了澄清起见,我正在访问 RoleEnvironment 以获取分配的端口。

RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["TcpSvcEndpoint"].IPEndpoint.Port;

我使用的是 Azure SDK 1.6。 (2011 年 11 月版)。

最佳答案

对于 Windows Azure SDK 1.5 及更高版本,多个实例具有不同的 IP 地址,但端点设置中定义的端口相同,如我的 this blog 中所述。 .

它的工作方式是,如果您定义了一个端口为 10000 的 TCP 端点和 2 个实例,那么您将获得如下实例 IP 地址:

  • 实例 #1 - 127.255.0.1:10000
  • 实例 #2 - 127.255.0.2:10000

因此,如果您必须在计算模拟器中测试服务的所有实例。您需要将 IP 地址和端口组合起来才能测试应用程序。

关于c# - Azure 计算模拟器中的内部端口冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10925311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com