2010-03-31 13 views
5

In pratica sto cercando di fare la stessa cosa di this question, creare una nuova applicazione all'interno di una cartella in modo che fosse possibile accedervi come segue.Creazione di sotto-applicazioni .NET 3.0 all'interno di .NET 1.1 Applicazioni in IIS/ASP.Net

* http://www.domain.com/ < Main App 
* http://www.domain.com/newapp < New App 

Il problema è che newapp sta leggendo il web.config da App principale, che sta causando errori perché non hanno tutti la stessa DLL, ecc
Per Nuova App, in IIS, la partenza point è impostato su/newapp, quindi non sono sicuro del motivo per cui sta leggendo web.config da/affatto. È impostato come se fosse una propria applicazione.

Lo sto testando su IIS6 su XP Pro, quindi non sono sicuro che questo faccia la differenza. L'app principale è dotnet 1.1 e la nuova app è 3.0.

Edit: Aggiunta 'inheritInChildApplications a <location> non funziona in 1.1, si ottiene un errore:

Parser Error Message: Unrecognized attribute 'inheritInChildApplications' 

risposta

4

Questo legato alla progettazione. Web.config viene letto dalla radice nella cartella dell'app in questione. Tutte le modifiche nella radice si applicano alla tua app, a meno che la tua app non la modifichi. Leggere questo MSDN link per ottenere una migliore comprensione della gerarchia Web.config dell'eredità &.

Per fare in modo che l'app ignori le impostazioni nella root, è necessario applicare l'elemento location con l'attributo inheritInChildApplications impostato su false per il percorso.

Qualcosa di simile:

<location path="." inheritInChildApplications="false"> 
<settings.....> 
</location 

Ad esempio, se si dispone di una sezione nel web.config radice che è specifico per l'applicazione radice unica, quindi avvolgere l'elemento posizione intorno a quella sezione. Usa il percorso di "." per indicare che vuoi che tutti gli elementi nel percorso sotto questa cartella dell'app NON ereditino questa sezione.

+0

ho aggiunto questo intorno alla radice ma dal momento che è un'applicazione 1.1 non la riconosce: ottengo questo errore quando provo a visualizzare la pagina alla radice: Parser Error Message: attributo non riconosciuto 'inheritInChildApplications' – Karen

+0

Oh. Questo sarebbe un problema. Questo elemento è per 2.0 e superiori. A meno che non si possa ottenere il 1.1 a 2.0, si potrebbe essere un po 'bloccati poiché questo è di progettazione per come funziona web.config. – klabranche

+0

L'unica cosa che ho trovato è stata l'aggiunta di tag di rimozione al file child.config per ciascun elemento che causa problemi. ex: . Tuttavia, ciò rende l'app figlio web.config dipendente dal genitore, quindi probabilmente non è l'opzione migliore. – Karen

0

Come è stato detto, l'ereditInChildApplications non funziona in .net 1.1.

Ho fatto molte ricerche in questo settore e inizialmente sono atterrato qui alla ricerca di soluzioni. L'argomento non chiarisce che questa è una domanda mirata a 1.1.

Se si hanno problemi e le tue applicazioni sono 2.0 o superiore quindi controllare questo articolo per un sacco di informazioni dettagliate informazioni sui inheritInChildApplications attribuiscono:

+0

Scusate - Ho aggiunto più dettagli all'argomento per renderlo più chiaro. Al momento della pubblicazione originale, non avevo realizzato che si trattava di un problema 1.1. – Karen