关于web.config和.NET Core有很多矛盾的说法。
此外,我刚刚将一个几乎全新的.NET Core应用程序部署到Azure。 在存储库中,没有web.config,但是当我在Kudu中浏览已部署的代码时,有一个web.config文件吗?
答案 0 :(得分:0)
这可能是不正确的,但是请以我的理解方式来纠正我。
web.config用于向诸如IIS之类的托管软件提供一些信息,以帮助正确运行该应用程序。
在dotnet核心中 在诸如IIS之类的托管软件和Web应用程序之间有一层,称为Kestrel。
红est是两者之间的代理。然后,您看到的默认web.config(如果您浏览里面)将看到默认代码,该代码基本上说:我是一个dotnet核心应用程序,请使用dotnet核心运行时来运行我。您仍然可以在其中放置config来告诉IIS如何工作,我专门使用它来增加文件上传大小和Windows身份验证。
我将使用中间件配置HTTP标头。
答案 1 :(得分:0)
在.NET Framework Web应用程序中,web.config用于两个目的:
存储Web应用程序的配置。
要存储承载应用程序的IIS的配置(system.webServer
元素)。
在.NET Core Web应用程序中,您至少有两个选择来存储应用程序配置:
经常与json配置文件一起使用.NET Core Configuration Provider。
将System.Configuration.ConfigurationManager NuGet软件包与.NET Core的最新版本(我认为是2.0+)一起使用。使用System.Configuration.ConfigurationManager
的优点之一是可以在与.NET Core和.NET Framework兼容的.NET Standard 2.0库中使用。
如果您选择在.NET Core Web应用程序中使用System.Configuration.ConfigurationManager
,则需要向您的Visual Studio项目中添加app.config
(而不是web.config
)文件。构建此项目时,它将被复制到输出目录并重命名为appName.dll.config
。
如果您将.NET Core Web应用程序托管在IIS中,则仍需要一个具有IIS配置的web.config
文件(system.webServer
元素)。即您的应用程序可能同时需要app.Config
和web.config
。
我个人更喜欢使用System.Configuration.ConfigurationManager
和一个app.config
XML配置文件,这有几个原因,包括与.NET Framework的兼容性,易于注释掉XML的事实,等等。当然。
答案 2 :(得分:0)
阅读Google的一些web.config
示例,您应该注意到,
<system.web>
之类的标记)。<system.webServer>
之类的标签)。因此,迁移到ASP.NET Core只会使第一个过时,而您只应告别那部分知识。
如果您将Web应用程序托管在IIS上,则仍然需要web.config
,因为在那里需要进行初始设置才能为IIS / IIS Express配置ASP.NET Core模块(dotnet publish
会生成这样的文件如果您没有自己的)。