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

时间:2013-03-31 18:24:42

标签: vb.net winforms wcf

我希望有人可以指出一个好的“简单”示例,最好使用vb.net而不是c#,它演示了如何在Windows窗体应用程序中动态配置端点地址。

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

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

我欢迎任何人可以就此问题提出任何建议或指示。

由于

1 个答案:

答案 0 :(得分:2)

通过构造函数

将服务Uri传递给服务代理
            var serviceProxy = new YourClient(
                new BasicHttpBinding("BasicHttpBinding_IService"),
                new EndpointAddress(new Uri("http://server:port/address")));

YourClient类是自动生成的,当您添加对服务的引用时,Visual Studio会创建它。绑定名称应该来自您的配置文件。


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

OperationContext oc = OperationContext.Current;

if(oc != null)
{
    string wasCalledOn = oc.EndpointDispatcher.EndpointAddress.Uri.ToString();
}

并且取决于wasCalledOn设置数据库连接。