2009-12-22 13 views
10

Ho un progetto ASP.NET che ha le seguenti directory

\ annunci
\ foto
utilizzando IIS directory virtuali in Visual Studio progetti di applicazione Web

entrambe queste cartelle hanno migliaia di file in loro che vengono aggiornati frequentemente. Io attualmente ho il mio IIS impostato come

\ inetpub \ wwwroot \ foo
\ inetpub \ wwwroot \ foo \ annunci
\ inetpub \ wwwroot \ foo \ foto
\ inetpub \ wwwroot \ foo.staging
\ Inetpub \ wwwroot \ foo.staging \ annunci
\ inetpub \ wwwroot \ foo.staging \ foto

sto considerando trasformarla in

\ a etpub \ wwwroot \ foo
\ inetpub \ wwwroot \ foo \ annunci
\ inetpub \ wwwroot \ foo \ foto
\ inetpub \ wwwroot \ foo.staging
\ inetpub \ wwwroot \ foo.staging \ annunci
\ inetpub \ wwwroot \ foo.staging \ foto
\ inetpub \ wwwroot \ foo.resources \ annunci
\ inetpub \ wwwroot \ foo.resources \ foto

e girando le sottodirectory in foo e foo.staging nelle directory virtuali che puntano a foo.resources subdirecto Ries. In questo modo mentre eseguo il test in staging, non devo copiare tutti i file negli annunci e nelle foto ogni volta che distribuisco e mi preoccupo che le cose non siano sincronizzate. è una cattiva idea? Sto sviluppando in Visual Studio 2008 - C'è un modo per convincere VS a trattare le mie sottodirectory di progetti di applicazioni Web come directory virtuali?

+0

Mi piacerebbe saperlo anche questo. Consentire alle directory virtuali di essere all'interno del progetto mi consentirebbe di replicare in modo più accurato le strutture dei siti Web degli ambienti di produzione. – Russell

risposta

0

Penso che il modo per farlo sia impostarlo come si desidera in IIS prima con i propri vdir, quindi aprire il sito Web da IIS in Visual Studio. Vedi my answer a this question.

+0

grazie, l'ho visto anche io. che funziona per i siti Web ma non per le applicazioni Web – kenwarner

2

Una directory virtuale contenuta in un'applicazione Web in IIS assomiglia semplicemente a un pacchetto in Visual Studio.

Aprendo l'app di root e facendo clic sul pacchetto, dovrebbe chiedervi se si desidera aggiungere l'app/vdir figlio alla soluzione. Quindi aprilo come secondo progetto, puoi quindi fare riferimento ad esso o consumarlo secondo necessità.

L'idea alla base delle distribuzioni di test e live è che dovresti disporre di dati separati nel caso in cui il test interrompa qualcosa. Essenzialmente, utilizzando i dati in tempo reale per i test, devi essere sicuro di non cancellare/modificare qualcosa che non dovresti o di infrangere la tua copia live dei dati.

Detto questo, se tutto ciò che si intende costruire è qualcosa che legge i dati, questa è una grande idea in quanto consente di risparmiare molto spazio e tempo sul disco nelle distribuzioni.

Farlo sembrare come prima lo si desidera in IIS, quindi aprire le informazioni in VS.

Visual Studio considera tutte le applicazioni virtuali definite sul server come applicazione secondaria. Se le risorse non sono impostate nelle directory secondarie come applicazione in IIS, dovrebbero apparire come una normale cartella.

Per esempio ...

Se si imposta 2 siti web su IIS e mappare la cartella fisica per le immagini su entrambi come directory virtuali, si dovrebbe avere accesso ad essi come cartelle normali quando si apre sia in Visual Studio .

Tuttavia se si creano le directory virtuali in applicazioni in IIS e quindi si apre il sito Web in VS, è sufficiente visualizzare un pacchetto. Cliccando su questo si aggiunge come un secondo progetto in VS.

Non sono il migliore a spiegare le cose, ma spero che abbia senso.

Speranza che aiuta :)

0

vedo un problema simile con la mia applicazione con riguardo ad avere carichi di risorse per copiare su distribuzione.
Sto prendendo in considerazione la costruzione di un gestore di file che serve risorse di immagini al browser. Cioè Quando si collega alle immagini si potrebbe avere qualcosa come /filehandler.ashx?image=/ads/101/o3904838402384.jpg quindi si può avere solo un'impostazione di configurazione che punta a diverse o le stesse cartelle di archivio file per entrambi gli ambienti di prova e Live.

Ecco un collegamento ai fondamenti di come funziona.

http://dotnetperls.com/ashx-handler

0

È potrebbe, uso legato cartelle in Visual Studio = Questo crea un collegamento virtuale a una cartella in un altro progetto (o da qualche altra parte nel disco), ma non si fa fisicamente copiarli sul disco.

+0

Paul, hai provato questo? –

+0

Per le piccole cose si, non ho sperimentato nulla di particolarmente complicato, ma questo è quello che è stato fatto per (afaik) – Paul

0

Un'altra opzione ... Se si sta utilizzando SVN e se sei felice di avere le immagini fisicamente per due volte sul disco, ma ancora li hanno in sincronia, è quello di utilizzare SVN Esterni

+0

Paul, dovresti aver modificato la tua risposta originale invece di aggiungerne una nuova. –

+2

Ma sono risposte diverse ... – Paul

0

Poiché si tratta di risorse , c'è qualche ragione particolare per cui hai bisogno che siano in Visual Studio? VS, IMO, è per la gestione del codice in una soluzione, non necessariamente per la struttura delle directory.

In IIS, è possibile impostare la struttura della directory esattamente come si ha (o addirittura avere il punto di directory virtuale su un'unità di rete) e Visual Studio può ignorarlo completamente, poiché è probabile che sia solo un gruppo di file statici .

+0

Jordan, è bello poter vedere le immagini quando si utilizza la vista Struttura e Visual Studio può verificare se i propri URL sono validi, ma solo se le immagini esistono effettivamente sul disco. –

Problemi correlati