2010-10-24 3 views

Antwort

5

Nein, das ist nicht möglich. Eine Datei web.config muss im Stammordner jeder Website platziert werden. Sie könnten eine gemeinsame web.config-Datei als Build-Schritt des Projekts in das Stammverzeichnis jeder Site kopieren, damit ASP.NET sie zur Laufzeit finden kann.

8

I sieht aus wie es möglich ist, können Sie versuchen, folgende:

Sie können Ihre web.config Datei in den Stammordner Ihrer Lösung kopieren. Erstellen Sie dann den Lösungsordner (der zu keinem Ihrer Projekte gehört) und fügen Sie Ihre Datei dort hinzu (über den Popup-Menüeintrag Add Existing Item). Löschen Sie Webkonfigurationen von Ihren Websites. Danach können Sie im Popup-Menü beider Webprojekte Add Existing Item auswählen, die Datei web.config aus dem Lösungsstamm auswählen und auf Add As Link klicken. Danach haben Sie Links zu Ihren Web-Konfigurationsdateien anstelle von echten in Ihrer Lösung.

alt text

Auf der anderen Seite bin ich nicht sicher, ob gemeinsame Nutzung der web.config-Dateien zwischen verschiedenen Projekten eine gute Idee ist, weil in der Regel web.config einige spezifische condifuration für jede einzelne Anwendung hat.

+0

Ich habe versucht, dies zu tun, bekam aber eine Warnung, dass die Dateien nicht von der Quelle gesteuert würden, weil sie sich außerhalb der Wurzel des verbindlichen Projekts befanden. Sie scheinen jedoch von der Quelle kontrolliert zu werden, und Änderungen/Check-Ins scheinen zu funktionieren ... ich bin mir nicht sicher, ob mich dieses Thema irgendwann an einem Punkt treffen wird. –

0

Web.config-Dateien enthalten kaskadierende Überschreibungen einer höheren Dateieinstellung von web.config. Wenn Sie also eine web.config im Stammverzeichnis von IIS platzieren oder Einstellungen in der Datei machine.config oder der Standarddatei web.config des .NET-Frameworks (C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG for Beispiel).

Das beste Beispiel ist wahrscheinlich die Verwendung der Verbindungszeichenfolge LocalSqlServer. Es ist in der machine.config definiert als

<connectionStrings> 
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS; 
    Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf; 
    User Instance=true" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

Wenn Sie das Login-Steuerelement zum Beispiel verwenden würden und debuggen und fordern connection dann wird dies eine ebenso enthalten sein.

Wenn Sie also einige gemeinsame Einstellungen für mehrere Anwendungen benötigen, fügen Sie sie in eine Datei web.config ein, die in der Hierarchie hoch genug ist, letztendlich in der Datei machine.config.

Verwandte Themen