Есть приложение ASP.Net и исполняемый файл, и я не хочу два файла конфигурации - PullRequest
0 голосов
/ 17 ноября 2010

У меня есть проект библиотеки exe. Этот проект представлен в качестве ссылки в моем веб-приложении, которое имеет все те же элементы конфигурации в собственной конфигурации. Легкие вызовы выполняются непосредственно классам в проекте exe на внутрипроцессной основе, но тяжелые (гигабайты использования памяти) вызовы выполняются из командной строки.

У меня есть следующие элементы конфигурации, дублированные в файл AppName.config, а также файл Web.config:

<configuration>
<appSettings>
    ...
</appSettings>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding ... />
            <readerQuotas ... />
            <security>...</security>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint ... />
    </client>
</system.serviceModel>

AppSettings относительно просты, так как их можно делегировать во внешний файл конфигурации. Привязка модели сервиса отсутствует, так как она не может быть делегирована. Единственное, о чем я могу думать, это:

1) Настройте канал для приложения в режиме командной строки, выполнив поиск в файле web.config в текущем, родительском, родительском (и т. Д.) Каталогах, загрузив его в XmlDocument, захватив атрибуты и установив его в канале. свойства напрямую.

2) Перед вызовом exe-файла в веб-приложении извлеките элементы appSettings и system.serviceModel из родительского файла Web.config и запишите их в файл AppName.config, если Web.config новее. Тем не менее, мой exe находится в каталоге приложений Bin из-за общих библиотек DLL, и запись в / Bin принудительно перезапустит мое веб-приложение .... ой.

Многие из моих свойств канала важны и не могут быть значениями по умолчанию. Есть ли лучший способ?

Ответы [ 2 ]

1 голос
/ 17 ноября 2010

Если вы используете Visual Studio, вы можете добавить существующий файл из другого проекта и использовать «Добавить как ссылку».

0 голосов
/ 17 ноября 2010

IIRC, вы можете использовать configSource в обоих этих разделах ( здесь - обратите внимание, что он работает на уровнях ниже system.serviceModel).Это дает вам больше файлов, но вы должны иметь возможность обмениваться некоторыми данными между клиентом и сервером.Однако, возможно, необязательно или желательно , чтобы поделиться некоторыми настройками с клиентом - лично Я бы соблазнился оставить все как есть.

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