在没有mex绑定的情况下引用WCF服务

use*_*993 4 wcf mex-bindings

我想知道Visual Studio中的客户端项目如何引用没有mex绑定的WCF服务.每当我在任何示例WCF服务中删除默认的mex绑定时,客户端应用程序都找不到该服务,并且在自动生成的注释中,建议在生产环境中,应删除mex绑定.那么客户端应用程序应该如何找到服务并引用它呢?

tom*_*ern 10

如果您可以访问包含定义服务合同,操作和数据合同的类型的程序集,那么您可以使用动态创建代理ChannelFactory.在这种情况下,您不需要检索任何服务元数据,因为您已经可以访问调用服务所需的所有信息.

例如

// Create service proxy on the fly
var factory = new ChannelFactory<IMyServiceContract>("NameOfMyClientEndpointInConfigFile");
var proxy = factory.CreateChannel();

// Create data contract
var requestDataContract = new MyDataContract();

// Call service operation.
var responseDataContract = proxy.MyServiceOperation(requestDataContract);
Run Code Online (Sandbox Code Playgroud)

如果您可以访问服务端配置文件,这也有帮助,因此您可以将端点详细信息复制到客户端配置中.