.net - 我对 .NET Core 中的 web.config 感到困惑
问题描述
关于 web.config 和 .NET Core 有很多相互矛盾的说法。
- 说没了的地方。
- 地方说它消失了,但现在它又回来了。
- 地方说不再需要,但您可以手动创建一个:
此外,我刚刚向 Azure 部署了一个几乎全新的 .NET Core 应用程序。在存储库中,没有 web.config 但是当我在 Kudu 中探索部署的代码时,有一个 web.config 文件吗?
.NET Core 中的 web.config 发生了什么?你应该如何做非自定义应用配置的东西?(例如 HTTP 标头和其他 HTTP 级别配置)
解决方案
在 .NET Framework Web 应用程序中,web.config 用于两个目的:
存储 Web 应用程序的配置。
存储承载应用程序(
system.webServer
元素)的 IIS 的配置。
在 .NET Core Web 应用程序中,您至少有两种选择来存储应用程序配置:
使用.NET Core 配置提供程序,通常带有 json 配置文件。
将System.Configuration.ConfigurationManager NuGet 包与最新版本的 .NET Core(我认为是 2.0+)一起使用。使用的一个优点
System.Configuration.ConfigurationManager
是它可以在与 .NET Core 和 .NET Framework 兼容的 .NET Standard 2.0 库中使用。
如果选择System.Configuration.ConfigurationManager
在 .NET Core Web 应用程序中使用,则需要向Visual Studio 项目中添加app.config
(不是)文件。web.config
当您构建此项目时,它将被复制到输出目录并重命名为appName.dll.config
.
如果您在 IIS 中托管 .NET Core Web 应用程序,您仍然需要一个web.config
包含 IIS 配置的文件(system.webServer
元素)。即您的应用程序可能同时需要app.Config
和web.config
。
我个人更喜欢使用System.Configuration.ConfigurationManager
XMLapp.config
配置文件,原因有几个,包括与 .NET Framework 的兼容性、很容易注释掉一些 XML 等事实。当然是 YMMV。
推荐阅读
- php - 如何使用php中的where子句在单个查询中更新和减去两个表中的列。?
- python - 如何在docker上的postgresql中导入和管理数据库?
- c++ - 如何在 ubuntu 上添加 C++ 库
- pytorch - YOLO 和 protobufs
- javascript - 使用 Bodybuilder 发送查询以返回多个项目
- r - 将 2002-2020 年批量财务数据的 .txt 文件合并到一张表中
- iteration - 使用定点显示平方根
- amazon-web-services - 如何限制多个 Fargate 任务之间的流量
- java - 无法将基于模块的 maven java 11 项目正确导入 Eclipse(使用模块信息文件)
- angular - 如何为我的 scully 插件应用配置?