我有一堆远程机器,都在通过HTTP运行相同的WCF服务。我有一个中央配置工具,需要在运行时决定连接哪个机器。我不想在配置文件中定义所有的终结点,因为这是基于数据库驱动的。
我尝试了以下方法,但并不理想:
CustomerServiceClient GetClientForIPAddress(string ipAddress)
{
string address = String.Format("http://{0}/customerservice.svc", ipAddress);
var client = new CustomerServiceClient("?", address);
return client;
}
在这里,CustomerServiceClient是我的服务引用代理类,但(不出所料),它给了我以下错误:
在ServiceModel客户端配置部分中找不到名称为'?'且合同为'SkyWalkerCustomerService.ICustomerService'的终结点元素。这可能是因为您的应用程序找不到配置文件,或者因为没有找到与此名称匹配的终结点元素。
那么我该如何在运行时声明一个终结点并将我的服务引用指向它呢?
.NET 3.5