为什么我们需要在ASP .NET 5 wwwroot中使用web.config?
在ASP .NET 5中,Configuration正在剧烈变化。我们不再有web.config
文件。相反,我们可以使用JSON和其他选项,具体取决于我们在Startup
课程中设置的方式。与web.config
不同,这种配置通常不会进入wwwroot
,并且客户端无权访问它。为什么我们需要在ASP .NET 5 wwwroot中使用web.config?
然而,在ASP .NET 5项目模板有一个web.config
文件wwwroot
具有以下内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
</system.webServer>
</configuration>
在我看来,这可能是托管服务器正在寻找的东西运行时,独立于应用程序配置。
任何人都可以阐明为什么这是必要的,它是如何工作的?
Web.config严格用于IIS配置。除非在IIS中托管,否则不需要。从命令行运行应用程序时不会使用它。
在过去的Web.config被用于两个IIS配置和应用的配置和设置。但在asp.net 5中,它根本不被应用程序使用,它只用于IIS配置。
从IIS应用程序的这种分离是什么使得跨平台的可能的一部分。
请注意,从ASP.NET Core RTM开始,web.config文件(仍然只用于IIS)不再位于wwwroot文件夹中,而是位于wwwroot之外的应用程序根目录中。 –
我想知道同样的事情,我知道乔·奥德特已经回答了这个问题,但做了一些研究之后,我发现这篇文章,其他人可能会发现有用:http://shazwazza.com/post/aspnet-5-re-learning-a-few-things-part-1/
“如果你使用的是IIS,也还是可以的是一个web.config,可用于在system.webserver部分下配置IIS设置。“
这仍然需要吗? –
是的,如果您在IIS中托管ASP .NET Core,则仍然需要web.config,但配置文件的实际内容可能已更改。 – Gigi
我的web.config文件不在wwwroot /文件夹中。我只是想知道是否需要具有AspNetCore IIS模块的正常web.config和上面显示的wwwroot中的模块。 –