web.config和app.config混淆

Dom*_*Bat 4 asp.net web-services app-config web-config

我有一个引用Web服务的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>
Run Code Online (Sandbox Code Playgroud)

我的网站引用了这个DLL.

问题是,我将如何添加到web.config以覆盖上述设置(另外,我只是将app.config放在BIN目录中)?

我需要能够覆盖生产服务器上的Web服务的URL,因为它无法访问app.config中指定的URL(这是我们不会涉及的另一个问题).

ter*_*tyl 7

在configSections中创建一个名为applicationSettings的新sectionGroup,并将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>
Run Code Online (Sandbox Code Playgroud)


Alp*_*glu 6

Asp.Net 配置文件之间的差异:

网页配置:

当您想在 IIS 上托管您的应用程序时,需要 Web.config。Web.config 是 IIS 的强制性配置文件,用于配置它在 Kestrel 前如何作为反向代理运行。如果你想在 IIS 上托管它,你必须维护一个 web.config。

应用设置.json:

对于与 IIS 无关的所有其他内容,您可以使用 AppSetting.json。AppSetting.json 用于 Asp.Net Core 托管。ASP.NET Core 使用“ASPNETCORE_ENVIRONMENT”环境变量来确定当前环境。默认情况下,如果您在未设置此值的情况下运行您的应用程序,它将自动默认为生产环境并使用“AppSetting.production.json”文件。当您通过 Visual Studio 进行调试时,它会将环境设置为 Development,因此它使用“AppSetting.json”。请参阅此网站以了解如何在 Windows 上设置托管环境变量。

应用程序配置:

App.config 是 .NET 使用的另一个配置文件,主要用于 Windows Forms、Windows Services、Console Apps 和 WPF 应用程序。当您通过控制台应用程序启动 Asp.Net Core 托管时,也会使用 app.config。


太长; 没读

配置文件的选择取决于您为服务选择的托管环境。如果您使用 IIS 来承载您的服务,请使用 Web.config 文件。如果您使用任何其他托管环境,请使用 App.config 文件。请参阅使用配置文件配置服务文档 并查看ASP.NET Core 中的配置。