0

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

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

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

我欢迎任何人就这个主题提出任何建议或指示。

谢谢

4

1 回答 1

2

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

            var serviceProxy = new YourClient(
                new BasicHttpBinding("BasicHttpBinding_IService"),
                new EndpointAddress(new Uri("http://server:port/address")));

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


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

OperationContext oc = OperationContext.Current;

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

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

于 2013-03-31T19:55:55.687 回答