Bearbeiten Sie benutzerdefinierte Konfiguration in IIS

8

Ich arbeite an einem großen ASP.NET-Projekt (wir verwenden ASP.NET 3.5), das aus fünf verschiedenen WebSites und einigen gemeinsam genutzten Assemblies besteht. Vor kurzem habe ich einen benutzerdefinierten Bereich in web.config -Dateien für jede Site hinzugefügt. Wenn ich alle diese Anwendungen bereitstelle, wird jede Site separat unter demselben App-Pool bereitgestellt. Gibt es eine Möglichkeit, diesen Abschnitt in IIS auf Site-Ebene bearbeitbar zu machen, so wie Sie den Abschnitt ConnectionString für jede Site bearbeiten können?

Abschnitte, die ich hinzugefügt habe, sehen alle so aus:

%Vor%

Wir verwenden IIS 7.0, 2008 RC 2.

    
Victor 21.04.2011, 21:56
quelle

1 Antwort

20

Ja, es gibt eine Möglichkeit, dies zu tun, indem Sie das IIS-Konfigurationsschema erweitern.

  1. Erstellen Sie eine Datei mit dem Namen RegistriesSchema.xml und kopieren und fügen Sie den folgenden XML-Code ein:

    %Vor%
  2. Besorgen Sie sich eine Kopie eines Tools namens IisSchema.exe von hier:

      

    IISSCHEMA.EXE - Ein Tool zum Registrieren von IIS7-Konfigurationsabschnitten

    Entpacken Sie und stellen Sie sicher, dass sich sowohl die exe als auch die XML-Schemadatei im selben Ordner befinden.

  3. Von einer Administrator-Befehlszeile (d. h. öffnen Sie cmd.exe mit "Als Administrator ausführen"):

    %Vor%

    Dies wird zwei Dinge tun:

    • löscht die Schemadatei in %systemroot%\system32\inetsrv\config\schema
    • fügt applicationHost.config :

      das folgende XML hinzu %Vor%

4. Starten Sie den IIS-Manager und öffnen Sie die Funktionseinstellungen für Ihre Website und öffnen Sie den Konfigurationseditor:

5. Wählen Sie die Dropdown-Liste Abschnitt:

Wenn alles gut ist, sollten Sie "RegistriesCustomSettings" sehen, wählen Sie diese Option.

6. Sie können diese Einstellungen jetzt bearbeiten und sie werden der web.config -Datei Ihrer Site hinzugefügt:

Dies ist nur eine Demonstration, daher sind die Schemaeinstellungen möglicherweise nicht ganz richtig und werden wahrscheinlich eine Feinabstimmung benötigen.

Was tun mit <sectionGroup name="RegistriesCustomSettings"> ?:

Sie müssen weiterhin configSection/sectionGroup xml zu Ihrer web.config -Datei für jede Site hinzufügen oder Sie könnten sie der Root-Datei machine.config für jede Version von ASP.NET hinzufügen verwende, dh:

Für .NET Framework 2.0 (gilt auch für .NET 3.0 und 3.5):

%Vor% %Vor%

Für .NET Framework 4.0:

%Vor% %Vor%

Wenn Sie den configSection/sectionGroup Ihrer Assembly in Ihre machine.config -Datei (en) schreiben, müssen Sie ihn nicht in jedem web.config der Site deklarieren. Wenn einige Websites diese Assembly verwenden, kann dies eine gute Zeiteinsparung sein.

Aktualisierung:

Es scheint einen Fehler oder eine Einschränkung im IIS7.5 Configuration Editor zu geben. Es scheint, dass wenn Sie eigene benutzerdefinierte configSections <sectionGroup> oder <section> Deklarationen in der web.config -Datei Ihrer Site haben, bricht dies den IIS7.5 Configuration Editor. Ich versuche, dem auf den Grund zu gehen:

  

ASP.NET benutzerdefinierte Konfiguration Abschnitt Deklaration bricht IIS Manager-Konfigurationseditor

Update 2:

Ich denke, die MS-Dokumente zu diesem Thema sind ein wenig falsch, insbesondere wenn Ihr benutzerdefinierter Konfigurationsabschnitt von ASP.NET konsumierbar und im IIS-Manager-Konfigurationseditor editierbar ist. Der Trick scheint zu sein, das Schema in der Datei RegistriesSchema.xml wie folgt zu deklarieren:

%Vor%

Entfernen Sie außerdem den Abschnittsverweis von applicationHost.config :

%Vor%

Dies ist nicht erforderlich.

Außerdem müssen Sie das iisschema.exe -Tool nicht verwenden, sondern einfach eine Kopie von NotePad2 (es ist ein 64-Bit-Editor, Sie müssen dies in inetsrv\config bearbeiten) und die RegistriesSchema.xml -Datei direkt erstellen in inetsrv\config\schema .

Sie können hier mehr über das Erweitern des IIS7-Schemas erfahren:

  

Erweitern von IIS 7.0 Schema und Zugriff auf die benutzerdefinierten Abschnitte mit MWA

Sie können über die vorhandenen Schemadateien stöbern, um mehr über das Erstellen dieser Einstellungen zu erfahren. Sie finden sie in:

%Vor%

Vorbehalt: Das obige Beispiel wurde auf IIS7.5 x64 RTM unter Windows 7 x64 Ultimate getestet. Sie erwähnen, dass Sie einen Veröffentlichungskandidaten haben, so dass Ihre Meilenzahl dadurch variieren kann.

    
Kev 22.04.2011, 00:47
quelle

Tags und Links