Web.Config, внешний файл для system.serviceModel - PullRequest
19 голосов
/ 02 марта 2011

Использование VS2010

У меня в файле web.config есть следующее (детали удалены).

<system.serviceModel>
    <behaviors />
    <services />
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
    <bindings />
    <client />
</system.serviceModel>

Я бы хотел использовать атрибут configSource так же, как appSettings, который можно использовать для полученияподробности об этих элементах из другого файла конфигурации.

Я попытался применить атрибут configSource либо к system.serviceModel, либо к каждому из подузлов.Тем не менее, я получаю неправильную синюю волнистую строку, говорящую:

The 'configSource' attribute is not allowed

Я ссылаюсь на второй ответ (Том Братья) в этом вопросе, который демонстрирует то, что я хотел бы.
Может веб.config читать из внешнего XML-файла?

Дополнительно
Вот конфигурация из этого поста.Имеет недопустимые синие волнистые линии.

<connectionStrings configSource="web\config\connectionStrings.config" /> 
<appSettings configSource="web\config\appSettings.config" /> 
<system.diagnostics configSource="web\config\diagnostics.config" /> 
<system.serviceModel> 
    <bindings configSource="web\config\serviceModelBindings.config" /> 
    <behaviors configSource="web\config\serviceModelBehaviors.config" /> 
    <services configSource="web\config\serviceModelServices.config" /> 
    <client configSource="web\config\serviceModelClient.config" /> 
</system.serviceModel> 

Как в этом случае использовать атрибут configSource?

1 Ответ

29 голосов
/ 02 марта 2011

Вы не можете применить configSource= к <system.serviceModel>, поскольку это раздел конфигурации группа - не простой раздел конфигурации, а атрибут configSource доступен только в простых разделах конфигурации.

Однако вы абсолютно должны иметь возможность применить атрибут configSource к любому из узлов внутри <system.serviceModel> - я делаю это все время, в производственных системах - и это просто работает.Вы даже действительно пробовали ??

Или вы позволили отпугнуть себя Visual Studio ... он может показать вам (и сказать вам), что configSource="...." недопустимо (из-за этих волнистых подчеркиваний) -но это просто недостаток в редакторе Visual Studio - на дочерних узлах <system.serviceModel> ему разрешено иметь атрибут configSource=!

Можете ли вы показать нам (редактируяваш первоначальный вопрос) как выглядит ваш например serviceModelBehaviors.config ??

Кроме того: этот файл физически находится в подкаталоге web\config вашего веб-приложения?

...