0

我正在尝试从现有服务中调用远程 WCF 服务。

我已经在远程服务中添加了我需要使用的方法的服务引用,并在我自己的服务的这个 WebMethod 中使用它如下:

  [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 Web 方法,我实际上是在调用远程服务吗?!或者,我只是调用远程服务的 ServiceRequest 方法的本地实例吗?

如果我对我的错误是正确的,那么做我需要做的事情的正确方法是什么,我猜想作为一种传递或代理的行为来向我的服务和远程服务传递请求和响应?

4

1 回答 1

3

首先,该[WebMethod]属性将指向 ASMX webservice - 而不是 WCF。真的是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;
  }

这样,您确实调用了刚刚添加为服务引用的服务。

于 2009-12-16T08:27:49.727 回答