0

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

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

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

4

1 回答 1

0

我能够让这个工作,我忽略了从特定位置读取的 GetSection 的过载。tt 就这么简单:

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

aspNetCoreConfig["arguments"] = "xxxx";

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

于 2017-09-25T18:32:45.543 回答