构建MVC6应用程序的输出。它现在如何运作?

时间:2015-11-22 05:43:37

标签: asp.net-core asp.net-core-mvc

我正在检查默认的MVC 6应用程序并在本地文件系统上发布了构建。这是我检查编译源文件以nuget pacakges

时的样子

我可以看到3个主要文件夹: approot logs & wwwroot的

内部审批:

enter image description here

我可以看到我的WebApplication1现在是一个nuget包。

  1. 在approot>包> WebApplicaton1> 1.0.0> app中的ef文件是什么?

  2. ef文件也与2个网络文件一起被批准。它们是什么?

  3. 内部wwwroot:它拥有我所有的静态资源,如css和js。

    当我们在IIS或azure中部署应用程序时,这一切是如何实现的?

1 个答案:

答案 0 :(得分:3)

已发布输出中的efweb个文件与您在ef中定义的webcommands project.json相对应文件。您可以在project.json文件中定义更多命令,所有这些命令都将显示在此处。

beta-8版本开始,ASP.NET 5在IIS中使用名为HttpPlatformHandler的模块,该模块将http请求转发给外部进程...在我们的例子中,它将是dnx.exe处理。例如,您可以查看web.config下的wwwroot文件,其中显示了模块注册以及执行外部流程的路径......正如您在此处所见web.cmd正在使用。

<configuration>
  <system.webServer>
    <handlers>
      <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="%home%\site\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout.log"></httpPlatform>
  </system.webServer>
</configuration>

这种设计也适用于非Windows场景......例如,您也可以将您的应用与nginx反向代理一起使用

更详细的信息可以在以下链接中找到:

Change to IIS hosting model