为什么使用 ASP.NET 核心时 disable/remove IIS 模块?

Why disable/remove IIS modules when using ASP.NET Core?

Microsoft 的 ASP.NET 核心文档 (https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/modules?view=aspnetcore-2.1#disabling-iis-modules) 说

If an IIS module is configured at the server level that must be disabled for an app, an addition to the app's web.config file can disable the module.

但这并不能解释 when/why 必须禁用或删除这样的模块。有具体原因吗?是否建议禁用任何无法与 ASP.NET 核心一起运行的模块?

ASP.NETCore 的整个指导设计理念是简化您的应用程序。 ASP.NET Core 删除了您的构建中实际未使用的库依赖项。存在整个中间件管道,因此您可以只包含您需要的东西,等等。这只是这些方面的又一件事。

IIS 加载一组默认模块。如果您的应用程序实际上 不需要 这些模块,那么为每个请求添加额外的处理就很麻烦了。因此,请删除您 need/aren 不使用的模块。目标是以尽可能少的步骤从请求到响应,而 IIS 模块只是请求必须经过的这些步骤中的一个。如果你需要它那很好,但如果你不需要它,你就是在浪费周期、资源和时间。