为ASP.NET 5(vNext)部署自定义web.config

时间:2014-11-29 15:40:56

标签: asp.net-core

我正在使用kpm pack生成我的部署,我通过ftp部署到Azure。我需要能够提供静态json文件,所以我需要将以下内容添加到我的web.config:

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".json" mimeType="text/html" />
  </staticContent>
</system.webServer>

问题是kpm pack生成了web.config,因此实现此目的的唯一方法是在生成后将config部分添加到web.config。由于我通过ci进行自动部署,因此需要付出一些努力。有没有更好的方法来实现这一目标?

2 个答案:

答案 0 :(得分:2)

您应该将配置添加到web.config的源代码而不是目标。

如果您正在打包的项目的根目录中没有web.config,请创建一个。然后将静态内容配置添加到[project_root] /web.config。

“kpm pack”将保留[project_root] /web.config中的所有配置,添加IIS所需的一些信息,然后将其写入wwwroot / web.config。

重要更新:

“kpm pack”中引入了一项更改:https://github.com/aspnet/KRuntime/pull/972

请将您的web.config从项目根目录移动到wwwroot的源。

可以使用project.json(https://github.com/aspnet/Home/wiki/Project.json-file#webroot)中的“webroot”指定wwwroot文件夹的来源。 您也可以使用“kpm pack”的“--wwwroot”选项指定它。

答案 1 :(得分:0)

在ASP.NET Core中,您可以通过在代码中配置静态文件中间件选项(StaticFileOptions)来完全避免web.config,从而提供自定义FileExtensionContentTypeProvider作为其{{1} }}:

ContentTypeProvider