путаница web.config и app.config - PullRequest
       17

путаница web.config и app.config

4 голосов
/ 01 октября 2009

У меня есть DLL, которая ссылается на веб-сервис.

Блок, который он поместил в app.config (я изменил имена, но вы поймете, что идея):

<applicationSettings>
    <DLLName.My.MySettings>
        <setting name="DLLName_WebReferenceName_ASMXName"
            serializeAs="String">
            <value>http://URL/Filename.asmx</value>
        </setting>
    </DLLName.My.MySettings>
</applicationSettings>

Мой сайт ссылается на эту DLL.

Вопрос в том, что мне добавить в web.config для переопределения вышеуказанного параметра (альтернативно, я просто помещаю app.config в каталог BIN)?

Мне нужно иметь возможность переопределить URL-адрес веб-службы на рабочем сервере, поскольку он не может достичь URL-адреса, указанного в app.config (это другая проблема, с которой мы не будем сталкиваться).

Ответы [ 2 ]

7 голосов
/ 01 октября 2009

Создайте новый раздел GroupGroup в configSections под названием applicationSettings и вставьте свою конфигурацию app.config в web.config, как показано ниже, а затем вы можете переопределить настройки app.config.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" 
                type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="Playground.ConfigurationOverride.DataAccess.Properties.Settings" 
                    type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                    requirePermission="false" />
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <Playground.ConfigurationOverride.DataAccess.Properties.Settings>
            <setting name="MySetting" serializeAs="String">
                <value>Setting in DataAccess</value>
            </setting>
        </Playground.ConfigurationOverride.DataAccess.Properties.Settings>
    </applicationSettings>
</configuration>
2 голосов
/ 10 сентября 2018

Различия между конфигурационными файлами Asp.Net:

Web.config:

Web.config необходим, если вы хотите разместить свое приложение на IIS. Web.config - это обязательный файл конфигурации для IIS, позволяющий настроить его поведение в качестве обратного прокси-сервера перед Kestrel. Вы должны поддерживать web.config, если хотите разместить его на IIS.

AppSetting.json:

Для всего остального, что не касается IIS, вы используете AppSetting.json. AppSetting.json используется для хостинга Asp.Net Core. ASP.NET Core использует переменную среды «ASPNETCORE_ENVIRONMENT» для определения текущей среды. По умолчанию, если вы запускаете свое приложение без установки этого значения, оно автоматически будет по умолчанию настроено на рабочую среду и использует файл «AppSetting.production.json». Когда вы отлаживаете через Visual Studio, он устанавливает среду разработки, поэтому он использует «AppSetting.json». Посетите этот сайт, чтобы понять, как установить переменную среды хостинга в Windows.

App.config:

App.config - это еще один файл конфигурации, используемый .NET, который в основном используется для Windows Forms, служб Windows, консольных приложений и приложений WPF. При запуске хостинга Asp.Net Core через консольное приложение также используется app.config.


слишком долго; Не читал

Выбор файла конфигурации определяется средой хостинга, выбранной вами для данной услуги. Если вы используете IIS для размещения своей службы, используйте файл Web.config. Если вы используете любую другую среду размещения, используйте файл App.config. См. Настройка служб с использованием файлов конфигурации, документация . а также проверьте Конфигурация в ASP.NET Core.

...