2010-10-24 25 views

risposta

5

No, non è possibile. Un file web.config deve essere posizionato nella cartella principale di ciascun sito web. Si potrebbe avere un file web.config comune copiato nella radice di ogni sito come una fase di costruzione del progetto in modo tale che in runtime ASP.NET possa trovarlo.

8

Mi sembra che sia possibile, si può provare seguenti:

È possibile copiare il file web.config nella cartella principale della vostra soluzione. Quindi crea una cartella soluzione (che non appartiene a nessuno dei tuoi progetti) e aggiungi il tuo file lì (tramite la voce del menu popup Add Existing Item). Elimina le configurazioni Web dai tuoi siti web. Successivamente è possibile selezionare Add Existing Item dal menu popup di entrambi i progetti Web, selezionare il file web.config dalla root della soluzione e fare clic su Add As Link. Dopodiché avrai collegamenti ai tuoi file di configurazione web invece di quelli reali nella tua soluzione.

alt text

D'altra parte non sono sicuro se la condivisione dei file web.config tra progetti diversi è una buona idea, perché di solito web.config ha qualche condifuration specifico per ogni applicazione separata.

+0

Ho provato a farlo, ma ho ricevuto un avvertimento che i file non sarebbero controllati dal codice sorgente perché erano esterni alla radice del progetto di bind. Tuttavia, sembrano essere controllati dalla fonte e le modifiche/i check-in sembrano funzionare ... non sono sicuro se quel problema mi morderà ad un certo punto lungo la strada. –

0

I file Web.config contengono sovrascritture sovrapposte di impostazioni di file web.config superiori. Quindi, se si posizionasse un web.config nella root di IIS o si regolassero le impostazioni nel machine.config o nel web.config standard del framework .NET (C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG per esempio).

L'esempio migliore è probabilmente l'uso della stringa di connessione LocalSqlServer. E 'definita nel machine.config come

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

Se si desidera utilizzare il controllo Login per esempio, e sarebbe il debug e richiedere i connectionStrings allora questo sarà incluso pure.

Quindi, se sono necessarie alcune impostazioni comuni a più applicazioni, inserirle in un file web.config sufficientemente elevato nella gerarchia, in definitiva in machine.config.

Problemi correlati