我可以将system.serviceModel拆分为单独的.config文件吗?

时间:2010-05-11 19:51:42

标签: wcf web-config asp.net-3.5

我想将web.config的system.serviceModel部分分成单独的文件,以方便某些环境设置。我的努力没有结果。当我尝试使用这种方法时。 wcf代码抛出一个异常:“'System.ServiceModel.ClientBase 1的类型初始值设定项引发异常。有谁能告诉我我做错了什么?

的Web.config:

<configuration>
  <system.serviceModel configSource="MyWCF.config" />
  ....

MyWCF.config:

  <system.serviceModel>
    <extensions>
      ...
    </extensions>

    <bindings>
      ...
    </bindings>

    <behaviors>
      ...
    </behaviors>

    <client>
       ...
    </client>

  </system.serviceModel>

2 个答案:

答案 0 :(得分:34)

您无法“外化”<system.serviceModel>部分组 - 因为它是的配置部分 - 但您绝对可以将其中的每个位外部化:

<system.serviceModel>
    <behaviors configSource="behaviors.config" />
    <bindings configSource="bindings.config" />
    <extensions configSource="extensions.config" />
    <client configSource="client.config" />
    <services configSource="services.config" />
</system.serviceModel>

在.NET配置系统中,任何配置部分都可以外部化 - 每个配置部分都有configSource属性(即使Visual Studio有时会抱怨并声称相反...... 。) - 但不是配置节组。

不幸的是,这两者很难区分 - 您需要查阅MSDN库或文档才能找到答案。

你还应该在CodeProject上查看Jon Rista关于.NET配置系统的三部分系列文章。

强烈推荐,写得很好,非常有帮助!

答案 1 :(得分:5)