2013-07-27 1 views
1

나는 현재 내가 그렇게app.config에서 동적으로 WCF 서비스 기본 주소 포트 번호를 설정할 수 있습니까?

net.tcp://*:8000/TestProject/Service

예상 서비스가 포트에서 수신으로이 작동

처럼 app.config 파일의 기본 주소를 구성한 8000

포트에서 수신 된 netTcpBinding 엔드 포인트를 8000.

제 문제점은이 서비스가 타사 컴퓨터에 배포되고 포트 충돌이 우려됩니다 (그리고 포트를 열려고 할 때 System.Net.SocketException이 발생 함). 다른 응용 프로그램에서 이미 사용중인 포트).

나는 예외를 처리하고 사용 가능한 포트를 사용하여 기본 주소를 다시 코드에서 사용 가능한 포트를 찾을 수 IPGlobalProperties을 사용할 수 있습니다 하지만 난 app.config 설정에서 동적 포트를 사용하도록 WCF를 지시 할 수있는 방법이 있었다 기대했다 .

클라이언트 연결은 WS-Discovery를 사용하여 서버 끝점을 찾을 때 미리 정의 된 포트 번호를 알 필요가 없습니다.

답변

1

app.config에 추가 할 수 있습니다.

<appSettings> 
    <add key="Port" value="8000" /> 
</appSettings> 

그리고 당신은 포트를 읽은 후 당신이 URL을 만들 필요가있는 코드

string port = ConfigurationManager.AppSettings["Port"]; 

에서 그것을 읽었다.

관련 문제