2017-05-03 2 views
1

다른 응용 프로그램을 어떻게 구성합니까? 인스턴스? ApplicationManifest 및 서비스 Config 패키지를 매개 변수화 할 수 있지만 두 개의 다른 응용 프로그램 인스턴스에서 웹 서비스에 대해 다른 포트를 지정하려면 어떻게해야합니까? 웹 서비스의 끝점은 ServiceManifest에 정의되어 있으며 afaik는 매개 변수화 할 수 없습니다. 서비스 패브릭 응용 프로그램 인스턴스 구성

<Resources> 
 
    <Endpoints> 
 
    <!-- This endpoint is used by the communication listener to obtain the port on which to 
 
      listen. Please note that if your service is partitioned, this port is shared with 
 
      replicas of different partitions that are placed in your code. --> 
 
    <Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="80" /> 
 
    </Endpoints> 
 
</Resources>

내가 서비스 유형 MyWebSvcType를 포함하는 응용 프로그램 종류 MyAppType을 말해봐. 응용 프로그램 유형 MyAppTenant1MyAppTenant2의 두 인스턴스를 만듭니다. MyAppTenant1의 웹 서비스가 포트 80에서 수신하고 MyAppTenant2의 웹 서비스가 포트 81에서 수신하도록 지정하려면 어떻게해야합니까? 이것은 동일한 노드에있을 수 있으므로 다른 포트를 수신해야하기 때문입니다.

답변

1

포트 속성을 생략하면 서비스 인스턴스에 동적 포트가 할당됩니다. code을 사용하여 서비스 엔드 포인트를 찾거나 내장 된 역방향 프록시를 통해 액세스 할 수 있습니다.

자세한 정보 herehere.

+0

리버스 프록시 사용에 대한 제안을 시도했습니다. 그러나 'http : // mycluster : 19008/PartitionTestGreen/WebSvc/api/Values ​​/ 10'과 같이 URL에 입력 한 응용 프로그램 이름에 관계없이 항상 첫 번째 응용 프로그램 인스턴스에 내 요청을 보내는 것처럼 보입니다. PartitionTestGreen 인스턴스 대신 PartitionTestYellow 응용 프로그램 인스턴스. –

+0

리버스 프록시 자체에 어떤 것도 설정할 필요가 없습니다. 활성화 (포털에서 사용함으로 표시)하고 모든 응용 프로그램 인스턴스에 대한 요청을 명확하게 전달하지만 잘못된 인스턴스 (항상 동일 함)로만 전달합니다. –

+0

나는 그 문제를 직접 경험하지 못했다. 추가 구성은 필요하지 않습니다. 엔드 포인트를 나열하는 코드 스 니펫을 실행하여 모든 엔드 포인트가 예상대로 작동하는지 확인할 수 있습니까? – LoekD

관련 문제