2013-04-16 3 views
0

다른 고객에게 배포 할 응용 프로그램에 서비스 참조를 사용하는 것에 대해 약간의 의문이 있습니다. Windows 서비스에서 호스팅되는 vb.net의 WCF 서비스이며 다른 IP 주소를 가진 매우 다른 고객이 사용하게됩니다. 다른 환경, 말하자면.WCF : 프로덕션의 서비스 참조

저는 이미 서버와 클라이언트를 만들었습니다. 그들은 클라이언트에서 Service References를 사용하여 잘 작동하지만 서비스의 URL (net.tcp : // SomeHost : 6666/SomeService)을 필요로하기 때문에 다음과 같은 질문을 할 수 있습니다. 어떻게해야합니까? 고객의 환경에서 서비스 참조를 사용 하시겠습니까? 나는 프로그램 적으로 URL을 변경하는 것과 같은 것에 대해 생각하고있다.하지만 가능하다면 나는 모른다.

물론 호스트 이름은 고객마다 변경되지만 서비스 참조는 정적입니다. 나는 http://mstecharchitect.blogspot.com.ar/2009/01/invoking-wcf-service-without-service.html과 같은 다른 접근법을 사용하려고 생각했다. 하지만 이렇게하면 Service Reference의 이점을 잃을 수 있습니다. 이해할 수있는대로 클라이언트 측에서 사용할 수 있도록 필요한 프록시를 만듭니다.

다른 도움이 필요한 정보가 있으면 언제든지 물어보십시오. 그리고 미리 감사드립니다!

+0

구성 파일에 서비스의 끝점 주소를 설정하기 만하면됩니다. –

답변

0

코드에서 호스트 이름 만 업데이트하는 경우 구성 파일 (예 : appsettings), 서비스 끝점 주소에 저장할 수 있습니다.

appsettings에는 net.tcp : // {0} : 6666/SomeService와 같은 것이 포함됩니다.

클라이언트 (프록시) 인스턴스를 생성 할 때 특정 호스트를 추가하고이 작성된 주소를 전달합니다. 같은

뭔가 : 클라이언트

의 app.config :

<appSettings> 
    <add key="YourService.ClientAddress" value="net.tcp://{0}:6666/SomeService" /> 
    . . . 

다음 코드에서,

string endpointUrl = string.Format(ConfigurationManager.AppSettings["YourService.ClientAddress"], Your_Host_name); 
    YourClient client = new YourClient(YourEndpointName, endpointUrl); 
+0

위대한 하나, 고마워! 내가 필요한 것. – Pona

0

당신은 살펴보고, 각 클라이언트에 대해 다른 설정 파일을 사용할 수 있습니다 이 기사의 내용 Getting Away with Client Config in WCF

+0

나는 appsettings를 사용하는 방법에 조금 더 많은 도움이 되었기 때문에 @ evgenyl 's를 답으로 표시했지만, 당신도 마찬가지로 훌륭했습니다. 감사합니다! 적어도 나는 이것을 투표 할 수 있기를 바란다. 그러나 나는 그것을 위해 15 이상의 rep 지점을 필요로한다. – Pona