Quali sono i possibili inconvenienti di un sito IIS 7 che ha una giunzione NTFS come web root?


13

Sto cercando di trovare un modo per distribuire il codice ASP.NET con il minor disturbo possibile sul sito. Un pensiero era quello di impostare il sito per essere servito da un incrocio NTFS c:\www\example.comdove

c:\www\example.com -> c:\www\example.com_r1234

Quindi, quando viene distribuito un nuovo codice, questo viene copiato c:\www\site.com_r1235e la giunzione viene retargeting

c:\www\example.com -> c:\www\example.com_r1235

Quindi la mia domanda è: quale effetto potrebbe avere sulle attuali richieste in IIS? Quali altri svantaggi potrebbe avere questo dal punto di vista della reazione di IIS al cambiamento (se presente)? Questo sarà senza soluzione di continuità per l'utente finale del sito come spero?

(Ho preso in considerazione la possibilità di modificare la radice Web del sito tramite la riga di comando, ma non mi piace l'idea di riconfigurare IIS a causa di un dominio di app o di un pool di app non necessari che potrebbe accadere, ma non ne so molto cosa succede quando il percorso fisico configurato di un sito viene modificato mentre è sotto carico)

Per essere chiari, la mia unica preoccupazione qui è l'esperienza dei miei utenti finali. Il mio obiettivo è evitare i disturbi per loro, non la comodità per me.


1
Reimposta la radice Web. Qualsiasi riciclo (non credo lo farebbe) e il riavvio del pool di app sono quindi a) probabilmente non "inutili" eb) aiutano il processo di lavoro a mantenere un'idea realistica sullo stato del suo contenuto e delle cache. È una soluzione intelligente, certo, ma intelligente raramente significa stabile. Scopri cosa fa la maggior parte delle persone, quindi fallo.
TristanK,

Questa è un'ottima domanda, sto cercando una risposta da molto tempo. Tutto quello che ho mai visto è una distribuzione continua sotto un bilanciamento del carico (che non ho) o una semplice copia / svn di file nel webroot (che non mi piace).
jayrdub,

1
Quindi, prova prima a effettuare il retargeting della radice Web.
TristanK,

Risposte:


3

un modo per distribuire il codice ASP.NET con il minor disturbo possibile del sito.

Sembra che questo obiettivo e la soluzione proposta non siano allineati, perché ora hai un sacco di lavoro extra o script coinvolti per ogni distribuzione.

Una cosa che ho visto è installare un client svn sul server di produzione e il sito di produzione è una copia di check-out di una posizione / ramo specifica sull'albero di controllo del codice sorgente. In questo modo almeno devi aggiornare i file modificati per le nuove distribuzioni.


Tale operazione di rete causerebbe troppo a lungo gli artefatti del sito in uno stato di ambiguità. Questa è la situazione esatta che sto cercando di evitare. Sto cercando di eliminare il tempo in cui gli assembly sotto il webroot sono di versioni diverse.
jayrdub,

1
Il "lavoro extra e gli script coinvolti" non sono un problema, siamo completamente automatizzati
jayrdub,

Immagino di essere onesti, il disturbo e il lavoro richiesti non sono proprio la stessa cosa
Mark Henderson

Il disturbo dell'utente finale del mio sito è quello a cui mi riferisco
jayrdub,

2

Ho creato una cartella dietro la mia radice web chiamata _images

C:\DEV\_IMAGES

quindi copiato un mucchio di file gif in esso. Ho quindi creato un collegamento simbolico NTFS sulla mia radice usando

C:\DEV\PROJECT\ROOT mklink /D webimages ..\_images

In Visual Studio 2010 ho "Mostra tutti i file" quindi aggiorno ... e includo i nuovi "webimages" nel mio progetto. Ora posso indicare ...

img src='webimages/icon.gif'

Quando eseguo l'app funziona anche sul mio computer locale.

Non so se funzionerà sul server reale (IIS 7) fino a quando l'infrastruttura non ne avrà la possibilità, qualcuno conosce qualche problema sul perché questo non funzionerebbe in produzione ??

Sento che i diritti siano lì e che cosa dovrebbe fare, e in tal caso quale ottimo modo per semplificare la condivisione di cartelle (di tutti i tipi) tra app Web.

Non ho ancora provato a esprimerlo in TFS, quindi se qualcuno ha un feedback su questo, faccelo sapere!


0

Questo non funzionerà perché IIS potrebbe pensare che web.config sia cambiato da un altro programma. Probabilmente IIS genererà un'eccezione System.Configuration.ConfigurationErrorsException. Suggerirei di scrivere una sorta di script per cambiare semplicemente la home directory del sito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.