URL을 통해 WCF 서비스에 액세스합니다
-
05-07-2019 - |
문제
WCF 서비스 (WCFService1이라고 가정 해 봅시다)가 두 개의 원격 시스템에 배치되어 있습니다. 동일한 서비스가 두 개의 다른 기계에 배치되므로 공통 인터페이스와 공통 방법이 노출되어 있습니다.
WCFService1은 Machine1 및 Machine2에 배포됩니다.
클라이언트 컴퓨터에서 WCF 서비스를 소비하기 위해 클라이언트 앱을 만들었습니다.
WCF 서비스 (WCFService1)의 설계 시간 참조를 추가했습니다 (URL의 도움으로 http://11.12.25.23/wcfservice/service1.svc).
이제 서비스에 노출 된 방법을 호출 할 수 있습니다. 지금까지 괜찮아 ...
이제 내 질문 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으로 변경하면 (실제로 원하는 것이라고 가정)이 오류를 제거합니다.
서비스는 어떻게 구성됩니까? 서버 측 및 클라이언트면 구성을 보여주세요!
바인딩 불일치는 동일한 바인딩을 사용하지 않거나 바인딩의 일부 중요한 매개 변수가 다르다는 것을 의미합니다. 구성된 것이 잘못된 것이 있어야합니다. 구성을 보여주십시오!
마크