2016-12-22 6 views
0

Ich bin auf der Suche nach Ratschlägen zum Umgang mit mehreren web.configs in einer einzigen IIS-Site. Ich habe wenig Erfahrung in IIS, aber ich muss das herausfinden.IIS Site Inheritance

Hintergrund: 1) Wir haben eine Intranet-Anwendung auf einer einzigen Seite in IIS 7.5 2 ausgeführt wird) Wir haben Code benutzerdefinierte Anwendung auf verschiedenen Servern, die wir in unserem Intranet iFrame und wollen Huckepack-auf URL unser Intranet. (intranet.com/custom/blah.aspx) 3) Um dies zu erreichen, erstellten wir virtuelle Verzeichnisse innerhalb unserer IIS-Intranetsite. Leider scheint dies zu einer Vererbung/einem Konflikt zwischen web.config unseres Intranets und den web.configs für unsere verschiedenen benutzerdefinierten Anwendungen zu führen.

Mein erster Gedanke ist, dass vielleicht müssen wir unsere eigenen Anwendungen aus unserer IIS Intranet-Site entfernen und neue IIS-Website erstellen, aber ich bin nicht sicher, ob/wie dies möglich wäre, da wir immer noch auf dem huckepack wollen gleiche URL Irgendwelche Ideen?

Lassen Sie mich wissen, wenn zusätzliche Details/Erläuterungen benötigt werden.

+0

Stellen Sie sie als separate Websites und neu zu organisieren, um die URL durch Reverse-Proxy, wenn das, was Sie wollen. –

+0

Danke Lex - wie würde ich die URL durch Reverse Proxy neu organisieren? –

Antwort

1

Meiner Meinung nach können Sie immer noch mit Ihrem bestehenden Setup weitermachen, d. H. Benutzerdefinierte Anwendungen als virtuelle Verzeichnisse in Ihrer Intranet-Anwendung. Sie müssen nur Konflikte in web.config lösen. Es gibt zwei Möglichkeiten, diese Konflikte zu lösen.

  1. Lassen Sie Ihre Intranet-Anwendung web.config nicht seine Konfigurationen auf untergeordneten Verzeichnissen zu schieben. Um dies zu erreichen, verwenden Sie das Location-Tag. z.B. Wenn die Eltern-App ihre Verbindungszeichenfolgen nicht an untergeordnete Verzeichnisse übertragen soll, verwenden Sie das folgende Konstrukt. <location path="." inheritInChildApplications="false"> <connectionStrings> </connectionStrings> </location> Wenn Sie alle diese widersprüchlichen Einstellungen im location-Element umbrechen, wird es nicht an untergeordnete Verzeichnisse gesendet. Sie müssen hier vorsichtig sein, da es die Vererbung für die eigenen untergeordneten Verzeichnisse der Intranet-Anwendung und nicht nur für die virtuellen Verzeichnisse stoppt.

  2. Weisen Sie an, dass die Datei web.config Ihrer benutzerdefinierten Anwendung keine Konfigurationen von übergeordneten Verzeichnissen erbt. Um dies zu erreichen, verwenden Sie <clear/> Element. In der web.config Ihrer benutzerdefinierten Anwendung für alle diese widersprüchlichen Einstellungen löschen Sie zunächst Einstellungen, die von übergeordneten Elementen stammen, und fügen dann bestimmte Einstellungen hinzu, die Sie hinzufügen möchten. z.B. <connectionStrings> <clear /> <add your specific connection string> <connectionStrings>

+0

Danke Pankaj - Ich werde die zweite Option versuchen, da die web.config des Intranets von ihnen jedes Mal überschrieben wird, wenn wir ein Upgrade durchführen, und ich habe Angst vor den Downstream-Implikationen innerhalb des Intranets, die Sie bezeichnet haben. Danke für den Vorschlag! –

+0

Pankaj, ich habe es versucht, aber es hat nicht funktioniert. es hat immer noch geerbt –