2017-09-25 4 views
0

Ich muss mehrere Instanzen einer ASP.NET-Core-Anwendung auf einem Server hosten, die jeweils über ein Befehlszeilenargument unterschiedlich konfiguriert werden. Die Webanwendungsinstanzen werden mithilfe einer Windows Forms-Anwendung mit der Microsoft.Web.Administration-API verwaltet.AspNetCore-Argument zu IIS-Anwendung mit Microsoft.Web.Administration hinzufügen

Ohne die Verwendung der WinForms-App konnte ich mit mehreren Instanzen arbeiten, indem ich Argumente für den Konfigurationseditor für jede Site im IIS-Manager hinzufügte und "From" auf ApplicationHost.config einstellte. Dadurch wird für jede zu verwendende Anwendungsinstanz ein anderes Argument festgelegt, während sie immer noch von derselben ASP.NET-Core-EXE ausgeführt wird.

Was ich nicht tun konnte, ist dies in Funktionalität in der WinForms-Anwendung zu übersetzen. Wenn eine Instanz über das Tool hinzugefügt wird, wird ein neues <location>-Element zu ApplicationHost.config hinzugefügt, und ich muss ein untergeordnetes Element hinzufügen.

Antwort

0

Ich konnte das funktionieren, ich hatte die Überlastung von GetSection übersehen, die von einem bestimmten Ort lesen würde. tt war so einfach wie das:

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

aspNetCoreConfig["arguments"] = "xxxx"; 

Beim Hinzufügen der Anwendung mit ServerManager. Es ist wichtig, dass die Datei web.config für die Anwendung selbst kein Argumentargument im Bereich <aspNetCore> hat. Dadurch werden alle in der web.config der Website oder der ApplicationHost.config des Servers für diesen Speicherort festgelegten Dateien überschrieben, da alle Anwendungsinstanzen eine web.config in ihrem Stammordner freigeben, aber instanzspezifische Einstellungen in ihren jeweiligen Abschnitten <location> höher konfiguriert sein können -level Konfiguration

Verwandte Themen