【发布时间】:2010-01-11 18:47:02
【问题描述】:
我有一个客户端应用程序 (WPF),它会访问我的 Web 服务。
当我在 dev 中运行时,我想访问这些 Web 服务的 Dev 版本。当我在测试环境中运行时,我想点击服务的测试版本。对生产同样明智。
由于这些值在我的 app.config 文件中,在它们之间切换的最佳方式是什么?
【问题讨论】:
标签: c# .net xml web-services development-environment
我有一个客户端应用程序 (WPF),它会访问我的 Web 服务。
当我在 dev 中运行时,我想访问这些 Web 服务的 Dev 版本。当我在测试环境中运行时,我想点击服务的测试版本。对生产同样明智。
由于这些值在我的 app.config 文件中,在它们之间切换的最佳方式是什么?
【问题讨论】:
标签: c# .net xml web-services development-environment
另一种单一的配置文件方式是按照以下方式做一些事情:
<add key="Service-DEV" value="serviceUrl"/>
<add key="Service-UAT" value="serviceUrl"/>
<add key="Service-PROD" value="serviceUrl"/>
如果您的应用知道它在哪个环境中运行,那么您可以直接提取您需要的环境。
不过,由你决定。我还将多重配置方法与部署脚本一起使用,将正确的文件部署到请求的可部署环境。
【讨论】:
您想在构建应用程序时进行切换吗? NAnt 可能是处理此问题的一种方法,或者可能在 Visual Studio 中使用选项,因为存在调试和发布构建模式。
有几次我不得不做类似的事情,我更喜欢调整客户端计算机上的主机文件,以便我可以将相同的 DNS 用于开发、测试和生产。我不确定这是否适用于您的情况。
【讨论】:
我通常维护 3 个单独的配置文件,并在安装时手动切换它们。 Scott Hanselman 有一个article,关于如何使用构建模式以及预构建事件来自动在各种配置之间切换。作为替代方案进行调查是我要做的事情,所以我无法告诉你它在实践中的效果如何。
【讨论】: