具有QA和PROD版本的WCF服务

时间:2010-10-23 20:23:01

标签: wpf wcf web-config qa

这是我的场景......我有一个与WCF服务对话的WPF应用程序。

连接字符串设置位于WCF服务中。 WCF服务可以部署到两个不同的网站,一个用于QA,一个用于PROD(每个都有自己的URI)。

我希望我的WPF应用程序能够使用QA数据或PROD数据运行。基本上,我会在启动时将参数传递给WPF应用程序,该应用程序将是QA或PROD。

我想要做的是将完全相同的WCF服务代码部署到QA和PROD网站,唯一的区别是相应web.config文件中连接字符串的值。

然后我需要一种方法在WPF应用程序中拥有一个工厂模式,它将根据传入的QA / PROD参数返回WCF接口(代理)。

我需要在WPF应用程序中确保在QA和PROD引用中将WCF接口(代理)视为相同类型。

毕竟,结果将是......如果用户启动了WPF应用程序并通过了QA,每次对WCF服务的调用都将返回QA数据,如果他们通过PROD,则每次调用WCF服务都将返回PROD数据。

我可以简单地将QA或PROD作为参数传递给每个WCF服务方法,但这看起来很粗糙。由于WCF是无状态的并且没有构造函数,我需要找到更灵活的解决方案。

1 个答案:

答案 0 :(得分:1)

是否可以将服务部署到2个单独的URL?

  1. 服务网址1 - 质量检查网址 - >此web.config具有QA连接字符串
  2. 服务网址2 - PROD网址 - >此web.config具有PROD连接字符串
  3. 使用WCF服务的WPF应用程序很可能只有自己的服务主机配置文件。

    在WPF App中,

    如果您需要连接到QA网址 - >您将app.config更改为指向URL1

    如果您需要连接到PROD网址 - >您将app.config更改为指向URL2

    如果我理解正确的话,这将大大简化您的问题。

    这样,您的应用程序中没有逻辑决定要连接到哪个DB。它只是一个简单的问题,即在您的应用程序中配置正确的URL,其他所有内容都从那里流出。