Могу ли я разделить system.serviceModel в отдельный файл .config? - PullRequest
19 голосов
/ 11 мая 2010

Я хочу разделить раздел system.serviceModel файла web.config в отдельный файл, чтобы упростить некоторые настройки среды. Мои усилия оказались бесплодными. Когда я пытаюсь это сделать, используя этот метод. Код 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 ]

34 голосов
/ 12 мая 2010

Вы не можете "экстернализовать" группу секций <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 или документации, чтобы узнать.

Вам также следует ознакомиться с серией из трех частей Джона Риста, посвященной системе конфигурации .NET, в CodeProject.

Настоятельно рекомендуется, хорошо написано и очень полезно!

5 голосов
/ 11 мая 2010
...