programing

구성 파일을 통해 WCF 웹 서비스 참조 URL 경로를 동적으로 전환합니다.

bestprogram 2023. 7. 31. 21:33

구성 파일을 통해 WCF 웹 서비스 참조 URL 경로를 동적으로 전환합니다.

구성 파일을 통해 WCF 웹 서비스 참조 URL 경로를 동적으로 전환하는 방법은 무엇입니까?

구성에 있는 URL을 다른 URL로 재정의하시겠습니까?테스트 서비스와 라이브 서비스가 있다고 가정합니다.그냥 이렇게 하시면 됩니다.

client.Endpoint.Address = new EndpointAddress(Server.IsLiveServer() ?
    @"LiveUrl" : @"TestURl"); 

당신이 원하는 곳에서 URL이 나오는 곳.

에린의 대답을 자세히 설명하자면: -

MyClient client = new MyService.MyClient();
client.Endpoint.Address = new EndpointAddress(new Uri("insert new url here"),
    client.Endpoint.Address.Identity, client.Endpoint.Address.Headers);
client.Open();

HTH!

동적 스위칭은 없습니다.다른 URL을 사용할 때마다 서비스 프록시(클라이언트)의 새 인스턴스를 만들고 EndpointAddress 또는 Enpoint구성 이름을 생성자에게 전달해야 합니다.

저도 같은 일을 하려고 노력했지만, 여러 게시물에 올라온 대부분의 답변은 주소만 변경합니다.현재 .net 4.7에서는 단순히 주소를 변경하는 것만으로는 작동하지 않습니다.두 개의 서로 다른 서버가 있고 서버를 하나에서 다른 서버로 전환하려면 다음 작업을 수행해야 합니다.

var client = new MyService.Service1Client();
var newAdrEndpoint = new EndpointAddress(new Uri("second server address"));
client = new MyService.Service1Client(client.Endpoint.Binding, newAdrEndpoint);

기본적으로 첫 번째 서버에서 동일한 바인딩을 사용하여 새 주소를 전달하는 새 서비스를 만들어야 합니다.이것이 제가 찾은 가장 간단한 방법입니다.

물론 당신은 이것을 할 수 있습니다, 여기 보세요.wcf 서비스를 위해 클라이언트를 구성하는 방법은 무엇입니까?

개발 중인 localhost를 가리키고 web.config에서 운영 중인 주소(url)를 변경하는 것은 절대적으로 정상입니다.

호출 후 엔드포인트 url을 사용할 수 없습니다.

예.

이 경우 새 URL에서 다음과 같은 답변을 얻을 수 있습니다.

MyClient client = new MyService.MyClient();
client.Endpoint.Address = new EndpointAddress("NEWURL"); 
client.Hello(); //return is hello response from NEWURL

그러나 url을 변경하기 전에 메서드를 호출할 경우 다음 예와 같이 app.config에서 url이 사용됩니다.

MyClient client = new MyService.MyClient();
client.Endpoint.Address = new EndpointAddress("NEWURL"); 
client.Hello(); //return is hello response from BASEURL

언급URL : https://stackoverflow.com/questions/5036308/dynamically-switch-wcf-web-service-reference-url-path-through-config-file