使用Microsoft.Web.Administration将AspNetCore参数添加到IIS应用程序

时间:2017-09-25 15:49:33

标签: .net iis asp.net-core web-administration

我需要在服务器上托管ASP.NET Core应用程序的多个实例,每个实例都通过命令行参数进行不同的配置。使用带有Microsoft.Web.Administration API的Windows窗体应用程序管理Web应用程序实例。

在不使用WinForms应用程序的情况下,通过在IIS管理器中为每个站点添加配置编辑器的参数并将“From”设置为ApplicationHost.config,我能够使用多个实例。这为每个要使用的应用程序实例设置了不同的参数,同时仍然从同一个ASP.NET Core .exe。

运行

我无法将其转换为WinForms应用程序中的功能。通过该工具添加实例时,会向ApplicationHost.config添加一个新的<location>元素,我需要向其添加一个&lt; aspNetCore arguments="xxxx" />子元素。

1 个答案:

答案 0 :(得分:0)

我能够使这个工作,我忽略了从特定位置读取的GetSection的重载。 tt就像这样简单:

var aspNetCoreConfig = site.GetWebConfiguration().GetSection("system.webServer/aspNetCore", "<appInstanceName>");

aspNetCoreConfig["arguments"] = "xxxx";

使用ServerManager添加应用程序时。非常重要的是,应用程序本身的web.config在<aspNetCore>部分中没有参数属性。这将覆盖Site的web.config或服务器的ApplicationHost.config中为该位置设置的任何内容,因为所有应用程序实例在其根文件夹中共享web.config,但可以配置特定于实例的设置在较高级别配置中的各自<location>部分。