2015-12-27 50 views
7

在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> 

在我看来,这可能是托管服务器正在寻找的东西运行时,独立于应用程序配置。

任何人都可以阐明为什么这是必要的,它是如何工作的?

+0

这仍然需要吗? –

+0

是的,如果您在IIS中托管ASP .NET Core,则仍然需要web.config,但配置文件的实际内容可能已更改。 – Gigi

+0

我的web.config文件不在wwwroot /文件夹中。我只是想知道是否需要具有AspNetCore IIS模块的正常web.config和上面显示的wwwroot中的模块。 –

回答

14

Web.config严格用于IIS配置。除非在IIS中托管,否则不需要。从命令行运行应用程序时不会使用它。

在过去的Web.config被用于两个IIS配置和应用的配置和设置。但在asp.net 5中,它根本不被应用程序使用,它只用于IIS配置。

从IIS应用程序的这种分离是什么使得跨平台的可能的一部分。

+1

请注意,从ASP.NET Core RTM开始,web.config文件(仍然只用于IIS)不再位于wwwroot文件夹中,而是位于wwwroot之外的应用程序根目录中。 –

1

我想知道同样的事情,我知道乔·奥德特已经回答了这个问题,但做了一些研究之后,我发现这篇文章,其他人可能会发现有用:http://shazwazza.com/post/aspnet-5-re-learning-a-few-things-part-1/

“如果你使用的是IIS,也还是可以的是一个web.config,可用于在system.webserver部分下配置IIS设置。“

相关问题