从不同的地址使用相同的WCF服务

时间:2011-02-15 18:59:56

标签: c# wcf

我有一个WCF服务但是,直到运行时,我不知道服务的正确地址。它可能是:

http://example1.com/MyService.svc
// or
http://example2.com/MyService.svc

该服务由类库(DAL)使用。我有两个选择:

  1. 添加服务引用 服务(Visula Studio 2010)和 在运行时更改地址。这个 方式VS-2010将创建WSDL和 其他东西对我来说(我不确定这是否可能)。
  2. 动态创建代理并设置 基本服务地址。这需要 更多的工作,如果我做出任何改变 要服务,我需要生成WSDL 我。维护此代码是 不像选项一那么容易。
  3. 使用哪个选项?另外如果您推荐选项二,那么我的客户端包装器类应该是单例还是我可以在每次调用时创建所有连接内容?

2 个答案:

答案 0 :(得分:2)

您可以指向localhost或开发中的任何其他地址,然后在生产中,如果网址更改,您只需修改web.config或已配置WCF端点的app.config。

答案 1 :(得分:1)

选项1 - 你获得了所有的优势,没有任何痛苦。只需使用面向工厂的东西(即不要做new MyProxy(),而是将代码固定在某个中心位置,如静态CreateMyProxy()方法,或考虑 IoC / DI容器)

How to consume WCF web service through URL at run time?