wcf 配置文件与代码配置的优缺点

Posted

技术标签:

【中文标题】wcf 配置文件与代码配置的优缺点【英文标题】:Pros and Cons of wcf config file vs in code config 【发布时间】:2012-05-07 10:20:30 【问题描述】:

我有一个自托管的 C# WCF 服务,它为各种目的创建了 20 多个端点。每个都在代码本身中配置,并在服务的 app.config 中使用一些基本配置项,例如端口和地址。该服务非常适合经过测试的客户,但尚未经过广泛测试。

我对标准的 wcf 配置文件方法有点了解,因为我担心最终用户会把事情搞砸,因此一切都在代码中完成。

在配置文件中进行配置是否更好,因为这样最终用户可以根据他们的需要对其进行自定义,或者代码中的方法足以满足大多数需求?

【问题讨论】:

我实际上想要一个明确的答案来回答这个问题,但我很想建议它对此有点开放。但是,我对有关该主题的意见很感兴趣。 【参考方案1】:

WCF 的主要优点之一是将连接细节从代码中抽象出来。如果您需要更改任何服务参数,可以更轻松地通过 web.config 进行更改,而无需重新编译。例如,您可能需要更改“端口和地址”。如果您从代码中执行此操作,则需要重新构建,这可能不切实际。此外,我不确定为什么最终用户会正常使用 web.config,除非确实有必要。

简而言之,除非您有充分的理由不使用配置文件,否则您可能应该使用它们以充分利用 WCF 提供的抽象。

【讨论】:

【参考方案2】:

你需要问自己一些问题

不同的开发者在他们的机器上有不同的价值观吗? 其他不使用 c# 的人是否必须更改这些设置值? (例如管理员) 以后是否需要针对性能调整某些值(例如消息大小)?

如果其中任何一个问题的答案是肯定的,那么您需要将设置移动到 .config 文件中。如果您担心了解其他设置的客户端会意外弄乱您的 wcf 设置,您始终可以通过将 configSource 属性添加到每个标签的 web.config 或 app.config 文件来分隔设置,并将您的部分配置在子目录中的单独文件中,以减少意外更改的可能性。

【讨论】:

【参考方案3】:

很简单,

如果您使用.config 文件,那么您将能够在编译代码后更改配置。这可能是好是坏,取决于您的情况。

【讨论】:

以上是关于wcf 配置文件与代码配置的优缺点的主要内容,如果未能解决你的问题,请参考以下文章

通过C#代码调用WCF服务中的一个方法。不依赖配置文件等。求完整代码!!

WCF系列教程之WCF服务配置

WCF入门教程四[WCF的配置文件]

使用代码而不是配置文件将消息检查器添加到 WCF 服务

WCF配置问题(配置WCF跨域)

WCF