Могу ли я объединить файлы WCF .config? - PullRequest
0 голосов
/ 14 мая 2011

Можно ли объединить файлы app.config и файлы web.config.Я сам принимаю службу и размещаю ее в IIS, и мне приходится редактировать два разных файла?

Ответы [ 3 ]

6 голосов
/ 14 мая 2011

Да, вы можете «экспортировать» ваши соответствующие разделы конфигурации в отдельные файлы и ссылаться на них как из app.config, так и из web.config.

Любой раздел конфигурации .NET может быть сохранен ввнешний файл конфигурации, поэтому вы можете написать:

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

Теперь ваши внешние файлы будут выглядеть точно так же, как соответствующий раздел конфигурации внутри вашей конфигурации:

bindings.config

<?xml version="1.0" encoding="utf-8" />
<bindings>
   <basicHttpBinding>
       <binding name="......."  ...... />
   </basicHttpBinding>
</bindings>

Примечание: редактор Visual Studio будет жаловаться на атрибут configSource= - но Intellisense перепутан - атрибут configSource присутствует в каждом разделе конфигурации, а это работает просто отлично!

Примечание # 2: вы не можете экстернализировать всю <system.serviceModel>, так как это группа разделов конфигурации - и у них нет никаких средств дляположить во внешние файлы, к сожалению.

0 голосов
/ 15 мая 2011

В прошлом, когда я хотел прочитать раздел конфигурации serviceModel из пользовательского местоположения файла, я определил пользовательский подкласс System.ServiceModel.ServiceHost, а затем передал местоположение пользовательского файла конфигурации этому подклассу.

Методика описана здесь: Чтение конфигурации WCF из местоположения клиента

С помощью этого метода вы сможете вопреки утверждению marc_s разместитьвсю конфигурацию службы в файле конфигурации WCF (я полагаю, app.config) в файле конфигурации IIS, а затем передайте расположение файла конфигурации IIS в пользовательский подкласс ServiceHost, как описано выше.

0 голосов
/ 14 мая 2011

Да, вы можете. Просто добавьте раздел <appSettings> из вашего app.config в web.config и объедините, если необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...