我有一个内部端点设置如下:
<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 月版)。