문제

WCF 서비스 (WCFService1이라고 가정 해 봅시다)가 두 개의 원격 시스템에 배치되어 있습니다. 동일한 서비스가 두 개의 다른 기계에 배치되므로 공통 인터페이스와 공통 방법이 노출되어 있습니다.

WCFService1은 Machine1 및 Machine2에 배포됩니다.

클라이언트 컴퓨터에서 WCF 서비스를 소비하기 위해 클라이언트 앱을 만들었습니다.

  1. WCF 서비스 (WCFService1)의 설계 시간 참조를 추가했습니다 (URL의 도움으로 http://11.12.25.23/wcfservice/service1.svc).

  2. 이제 서비스에 노출 된 방법을 호출 할 수 있습니다. 지금까지 괜찮아 ...

이제 내 질문 URL이 다른 다른 컴퓨터에서 호스팅 된 동일한 서비스로 Run Time에서 클라이언트를 업데이트 해야하는 경우 http://12.12.24.24/wcfservice/service1.svc), 어떻게 할 수 있습니까?

현재 나는 이것을하고있다 :

BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://12.12.24.24/WCFService/Service1.svc");
MyServiceClient serviceClient = new MyServiceClient(binding, address);

그러나 서비스에 노출 된 메소드를 호출하는 데 사용할 때마다 바인딩 MIS 매치 오류가 발생했습니다.

도움이 되었습니까?

해결책

고객을 먼저 호출 해 보셨습니까?

예 :

MyWCFClient client = new MyWCFClient();
client.EndPoint.Address = new EndpointAddress("http://somewhere:888/here.svc");

다른 팁

Machine1의 web.config 파일을 보면 바인딩이 wshttpbinding (또는 basichttpbinding과 다른)이 있음을 알 수 있습니다. Basichttpbinding으로 변경하면 (실제로 원하는 것이라고 가정)이 오류를 제거합니다.

서비스는 어떻게 구성됩니까? 서버 측 및 클라이언트면 구성을 보여주세요!

바인딩 불일치는 동일한 바인딩을 사용하지 않거나 바인딩의 일부 중요한 매개 변수가 다르다는 것을 의미합니다. 구성된 것이 잘못된 것이 있어야합니다. 구성을 보여주십시오!

마크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top