Ich nehme an, Sie haben Anwendung A, Anwendung B, Anwendung C und so weiter, die alle genau gleich sind, außer sie unterscheiden sich durch einige Konfigurationseigenschaften wie in ihren web.config-Dateien definiert.
Natürlich ist dies möglich - einfachste Möglichkeit ist, das Projekt als Webanwendung einzurichten, dann zu kompilieren und dann diese DLL unter den Anwendungen zu teilen. Sie können den GAC verwenden, wenn Sie möchten.
Sie können einzelne Sites in IIS einrichten, die auf ein freigegebenes Verzeichnis verweisen (oder in jedem ein virtuelles Verzeichnis verwenden), in dem die gesamte Logik liegt. Sie können jedoch den Ordner app_code nicht freigeben.
EDIT
RichardOD hat die beste Antwort oben, und ich habe etwas ähnliches vor implementiert. Im Grunde habe ich eine benutzerdefinierte Konfigurationsdatei eingerichtet, die von der web.config referenziert wird (um zu verhindern, dass die App neu gestartet wird, wenn ich Änderungen daran vornimmt). Diese Datei wird nach Hostnamen gelesen und enthält spezifische Eigenschaften pro Host.
Alles, was ich mache, ist das Hinzufügen von Host-Headern zu IIS und ein Eintrag für diesen Host in der benutzerdefinierten Konfigurationsdatei. Erledigt.
Was ist der Unterschied zwischen den beiden .config-Dateien? Vielleicht nur im Zusammenhang mit Authentifizierung und Autorisierung? Es ist normalerweise möglich, andere Möglichkeiten zu finden, um solche Probleme zu behandeln (wie die Freigabe zwischen der Internet-Site und der Intranet-Site, die sie verwaltet). –
Der einzige Unterschied ist einige appSettings. Ich war nur neugierig zu wissen, ob ich das tun könnte, ohne irgendeinen Code zu ändern. –
@ Jakob- Sie könnten es mit App-Einstellungen tun, indem Sie eine Art App-spezifischen Schlüssel voranstellen, aber das würde immer noch eine Codeänderung erfordern. – RichardOD