Ho una soluzione composta da un'applicazione web e più progetti, è possibile condividere la configurazione nell'applicazione web di tutti la soluzione?È possibile condividere il web.config su più progetti in una soluzione? (ASP.NET)
Grazie
Ho una soluzione composta da un'applicazione web e più progetti, è possibile condividere la configurazione nell'applicazione web di tutti la soluzione?È possibile condividere il web.config su più progetti in una soluzione? (ASP.NET)
Grazie
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.
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.
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.
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.
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. –