2012-06-21 2 views

답변

0

당신이 당신의 가상 머신 내부에있을 때, 당신은 당신의 코드 예에서 호스트 이름을 얻기 위해 모든 .NET API를 사용할 수 있습니다

Dns.GetHostName(); 

이유를 당신이 당신의 윈도우 Azure VM 호스트 이름을 변경할 수 있습니다 대부분의 경우 VM 호스트 이름은 RD00 * **으로 설정되므로 여러 인스턴스가있는 경우 모든 호스트 이름이 다르고 기억하고 관리하기 쉽지 않습니다. 모든 호스트 이름을 기억하기 쉽도록 다음 속성을 사용하므로 동일한 역할과 관련된 모든 인스턴스의 이름은 vm-name ##이되므로 호스트 이름을 쉽게 기억하고 올바르게 관리 할 수 ​​있습니다.

<Role name="<role-name>" vmName=“<vm-name>”> 

그래서 당신이 구성 설정 이상 사용할 수 있지만 당신은 단지 표준 .NET API를 사용하여 호스트 이름을 얻기 위해 호스트 이름을 변경하고 그것을 작동합니다.

0

@AvkashChauhan이 지적했듯이, Dns 클래스를 통해 호스트 이름을 검색 할 수 있어야합니다. 하지만 호기심이 생기는 이유는 무엇입니까? 역할 인스턴스 간 통신의 경우에는 실제로 호스트 이름이 필요하지 않습니다. 오히려 역할 인스턴스 엔드 포인트 (내부 엔드 포인트로 설정한다고 가정)를 조회 한 다음 각 인스턴스에 대해 IP 주소와 포트를 요청할 수 있습니다. 그러면 IP 주소와 포트가 요청되어 특정 인스턴스에 직접 연결될 수 있습니다. 따라서 코드를 수정하는 경우 :

foreach (RoleInstance instance in RoleEnvironment.Roles["MyRole"].Instances) { 
    writeline(InstanceEndpoints["myendpoint"].IPEndpoint); 

실제로 호스트 이름이 필요할 수 있으며, 그렇다면이 대답을 무시하십시오. 하지만 ... 만약 당신이 찾고있는 것이 역할 인스턴스들 사이에 tcp/http/udp 연결을 만드는 방법이라면 이것은 롤 인스턴스에 대한 모든 IP/포트 조합을 검색하는 아주 간단한 방법입니다.

관련 문제