我对如何完成这项任务有点困惑。问题是,如何从多个托管服务器调用 WCF 服务。所有托管应用程序的 WCF 都是相同的。相同的契约(Contract)、相同的绑定(bind)类型等。我尝试以这种方式调用它,因为我将在多个服务器中托管服务,并且我需要该服务在所有服务器中执行相同的操作。我必须从一位客户那里调用它。 VS 2010、.Net Framework 4.0.、C#。
谢谢
最佳答案
这取决于您计划如何在客户端应用程序中创建服务代理。如果您想添加服务引用,只需从一台服务器添加它,然后为其他服务器创建单独的端点配置 - 除了地址之外,所有端点配置都将完全相同(您可以在代码中执行相同的操作)。当您调用服务时,您将为每个服务器创建代理实例,并且您将为每个服务器传递端点名称(在配置中定义),例如:
foreach(var endpointName in myStoredEndpointNames)
{
var proxy = new MyServiceProxy(endpointName);
proxy.CallSomeOperation();
}
另一种方法是不使用添加服务引用。在这种情况下,您必须在服务器和客户端应用程序之间共享契约(Contract),您可以使用 ChannelFactory 。此类是通过调用 CreateChannel 创建的客户端代理的工厂。您可以传递端点配置名称 endpoint address或binding and endpoint address调用该方法时。
关于c# - 从多个托管服务器调用相同的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5009341/