Vb.net 动态配置wcf端点的地址部分

Vb.net 动态配置wcf端点的地址部分,vb.net,winforms,wcf,Vb.net,Winforms,Wcf,我希望有人能给我举一个很好的“简单”的例子,最好是使用vb.net而不是c#,它演示了如何在windows窗体应用程序运行时动态配置端点地址 我有很多为数据库连接创建动态连接字符串的经验,但这是我第一次使用wcf,虽然我所读到的内容似乎表明这是可能的,但我还没有找到一个好的、简单的工作示例来在实践中演示该理论 我正在构建的应用程序需要附带一个测试地址(链接到测试数据库),以便最终用户在徒劳地使用真正的数据库之前能够确定他们完全熟悉他们需要做的事情(他们将链接到官方政府数据库,所以成功的试运行是一

我希望有人能给我举一个很好的“简单”的例子,最好是使用vb.net而不是c#,它演示了如何在windows窗体应用程序运行时动态配置端点地址

我有很多为数据库连接创建动态连接字符串的经验,但这是我第一次使用wcf,虽然我所读到的内容似乎表明这是可能的,但我还没有找到一个好的、简单的工作示例来在实践中演示该理论

我正在构建的应用程序需要附带一个测试地址(链接到测试数据库),以便最终用户在徒劳地使用真正的数据库之前能够确定他们完全熟悉他们需要做的事情(他们将链接到官方政府数据库,所以成功的试运行是一个先决条件)。由于两者之间的唯一区别是地址,我想使其动态可配置

我欢迎任何人在这个问题上提出任何建议或建议


谢谢

通过构造函数将服务Uri传递给服务代理

            var serviceProxy = new YourClient(
                new BasicHttpBinding("BasicHttpBinding_IService"),
                new EndpointAddress(new Uri("http://server:port/address")));
YourClient
类是自动生成的,VisualStudio会在向服务添加引用时创建它。绑定名称应来自配置文件


编辑: 看起来您的问题不仅仅是或不仅仅是关于客户端配置,还包括服务配置。您可以通过多个端点公开您的服务,您应该将其添加到配置文件中。这是一个如何在代码中确定客户端究竟访问了什么endpoind的问题。你可以查一下

OperationContext oc = OperationContext.Current;

if(oc != null)
{
    string wasCalledOn = oc.EndpointDispatcher.EndpointAddress.Uri.ToString();
}
并根据
wasCalledOn
设置数据库连接