문제

기존 서비스 내에서 원격 WCF 서비스를 요청하려고합니다.

원격 서비스에서 소비 해야하는 방법에 대한 서비스 참조를 추가 하고이 웹 메드에서 다음과 같이 사용합니다.

  [WebMethod(Description = "My local service."]
  public RemoteService.ServiceResponse ServiceRequest(RemoteService.SendRequest myObject)
  {
       // Instance of remote service's method I'm 
       RemoteService.ServiceResponse SendResponse;

       SendResponse = ServiceRequest(RemoteService.SendRequest)    

       return SendResponse;
  }

내 질문은 원격 서비스의 ServiceRequest 웹 메소드에 전화를 걸어 실제로 원격 서비스를 호출하고 있습니까?! 아니면 그냥 내 자신을 부르고 있습니까? 현지의 원격 서비스의 ServiceRequest 방법의 인스턴스?

내가 틀린 것에 대해 옳다면, 내가해야 할 일을하는 올바른 방법은 무엇입니까, 행동과 함께 내 서비스와 원격 서비스에 대한 요청과 응답을 통과하기위한 통과 또는 대리인이라고 생각합니까?

도움이 되었습니까?

해결책

우선, [WebMethod] 속성은 WCF가 아닌 ASMX 웹 서비스를 가리 킵니다. 정말 WCF입니까 ??

둘째, 경우 이다 WCF : 서비스에서 메소드를 호출하려면 해당 서비스의 프록시 클라이언트를 인스턴스화해야합니다. 서비스 참조를 생성하면 ServiceNamespace.ServiceReferenceClient 종류의 종류 - 그것은 당신을 위해 자율적으로 만들어졌습니다. 이것을 인스턴스화하고 해당 대리의 메소드를 호출해야합니다.

[WebMethod(Description = "My local service."]
public RemoteService.ServiceResponse ServiceRequest(RemoteService.SendRequest myObject)
{
       // Instance of remote service's method I'm 
       RemoteService.ServiceResponse SendResponse;

       ServiceProxyClient client = new ServiceProxyClient();    

       SendResponse = client.ServiceRequest(RemoteService.SendRequest)    

       return SendResponse;
  }

그렇게하면 방금 추가 한 서비스를 서비스 참조로 호출합니다.

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