所以我有一个Azure云服务,现在它有2个实例。我希望能够单独与每个实例进行通信,在我看来,这里找到的信息 - https://msdn.microsoft.com/en-us/library/azure/hh180158.aspx - 应该能够满足我的需求。
我不明白的是,我如何与每个实例进行沟通?如果我为我的Web角色定义了2个输入端点,那么它是如何知道的?#34;哪个实例响应一个端口,哪个实例响应另一个端口?
例如,这里是我正在玩的ServiceDefinition文件的示例:
<ServiceDefinition name="BasicWrapperServices.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
<WebRole name="MyCloudService" vmsize="Medium">
<Certificates>
<Certificate name="mydomain.com" storeLocation="LocalMachine" storeName="My" />
</Certificates>
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
<Binding name="HttpsIn" endpointName="HttpsIn" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
<InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="mydomain.com" />
<InputEndpoint name="InputEndpoint1" protocol="https" port="10000" certificate="mydomain.com"/>
<InputEndpoint name="InputEndpoint2" protocol="https" port="10001" certificate="mydomain.com" />
</Endpoints>
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
</WebRole>
</ServiceDefinition>
我在这里寻找的是能够通过端口10000与另一个实例进行通信,而不是10001,除非我错了?
答案 0 :(得分:0)
如果您想直接连接到每个实例而不通过Loadbalancer,那么在provided的同一URL上,查看直接端口端点。
端口的范围,例如10000到10010按顺序分配给您的角色实例。 Role_0获得10000,Role_1获得10001等等。
希望它有所帮助。
答案 1 :(得分:0)
您需要InstanceInputEndpoint
,而不是InputEndpoint
所以你的配置看起来像这样:
<InstanceInputEndpoint name="TraceEndpoint" protocol="tcp" localPort="443">
<AllocatePublicPortFrom>
<FixedPortRange max="10000" min="10010" />
</AllocatePublicPortFrom>
</InstanceInputEndpoint>
然后,您可以在旧门户中查找分配了哪些端点。
本地端口可能是您想要的任何东西。
在你的情况下它应该是443我想,因为你想通过https协议访问实例。所以在每个实例上都必须有一些正在倾听的东西。在你的情况下,它是443端口上的IIS。
然后,您可以通过公共IP和为每个实例分配的公共端口为每个实例访问443本地端口。