2010-10-10 5 views
6

Si consideri che voglio creare 10 siti Web in IIS, ognuno dei quali punta allo stesso sito Web sul disco rigido locale, ognuno con lo stesso codice, ma su sottodomini diversi.Lo stesso sito Web ASP.NET su più sottodomini ma diversi database?

subdomain1.domain.com, subdomain2.domain.com, ..., subdomain10.domain.com

Come posso aggiungere più stringhe di connessione nel mio file web.config e si legano ogni stringa di connessione a un diverso sottodominio?

Voglio farlo perché ogni sito Web avrà un database diverso con dati diversi.

risposta

2

Poiché il file web.config è comune a tutti i siti, è possibile aggiungere più stringhe di connessione come questa per ogni sottodominio.

<connectionStrings> 
     <add connectionString="" name="subdomain1"/> 
      <add connectionString="" name="subdomain2"/> 
</connectionStrings> 

Quindi è possibile controllare per l'URL corrente utilizzando

HttpContext.Current.Request.Url.AbsoluteUri 

e quindi utilizzare la stringa di connessione corretta

1

Ci sono 2 modi atleast per farlo (?):

  • Creare 10 siti IIS, ciascuno dei quali punta alla propria directory, posizionare il maggior numero possibile di funzionalità in DLL nella GAC. Hai quindi condiviso la base di codice. Ma ancora alcuni dati di singoli siti su disco.
  • Creare 10 siti IIS, ciascuno che punta alla stessa directory. Metti tutte le 10 stringhe di connessione nel web.config. Nel codice sono presenti funzionalità che selezionano la stringa di connessione corretta per la richiesta.

In realtà per il secondo quello che si potrebbe non hanno bisogno di 10 siti. Ottieni il DNS per indirizzare tutti e 10 i siti allo stesso IP.

Tuttavia, è necessario considerare se è più lavoro di quanto valga. Uno script di installazione che copia automaticamente il sito in 10 posizioni potrebbe essere l'approccio migliore.

Problemi correlati