【发布时间】:2012-06-07 03:29:00
【问题描述】:
我有一个内部端点设置如下:
<InternalEndpoint name="TcpSvcEndpoint" protocol="tcp" port="20000" />
端点将由 NetTcp WCF 服务使用。如果我在计算模拟器中运行 1 个实例,则配置工作正常。但是在计算模拟器中有 2 个或更多实例(Visual Studio 调试 Azure 项目),相同的端口被分配给所有实例。这当然会导致所有服务(第一个实例除外)的 WCF NetTcp 初始化失败,并出现预期异常“IP 端点上已经有一个侦听器。确保..... SocketException: Only one usage of each socket 。 ....”。
我的理解是模拟器会为每个实例增加端口。如果不是这样,在 Visual Studio 中调试时如何在计算模拟器上测试多个实例?
我不想使用带有“*”的动态端口设置。
为了澄清,我正在访问 RoleEnvironment 以获取分配的端口。
RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["TcpSvcEndpoint"].IPEndpoint.Port;
我正在使用 Azure SDK 1.6。 (2011 年 11 月版)。
【问题讨论】:
-
您能否澄清一下您是简单地使用端口 20000 进行 wcf 初始化,还是调用
RoleEnvironment.CurrentInstance.InstanceEndpoints["TcpSvcEndpoint"].IPEndpoint.Port? -
我正在调用 RoleEnvironment.CurrentInstance.InstanceEndpoint[...]...Port。我没有硬编码任何端口。端口号来自计算模拟器的 RoleEnvironment 实例。
标签: c# azure port azure-compute-emulator