Quais são as possíveis desvantagens de um site do IIS 7 com uma junção NTFS como raiz da web?

13

Estou tentando encontrar uma maneira de implantar o código ASP.NET com o mínimo possível de perturbações no site. Um pensamento era configurar o site para ser atendido a partir de uma junção NTFS c:\www\example.comonde

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

Em seguida, quando o novo código é implantado, ele é copiado c:\www\site.com_r1235e a junção redirecionada para

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

Então, minha pergunta é o que afeta isso pode ter nas solicitações atuais no IIS? Que outras desvantagens isso pode ter do ponto de vista da reação do IIS à mudança (se houver)? Será tão fácil para o usuário final do site quanto eu espero?

(Eu considerei alterar a raiz da web do site por meio da linha de comando, mas realmente não gosto da ideia de reconfigurar o IIS por causa de qualquer domínio desnecessário ou rotatividade desnecessária de pool de aplicativos que possa acontecer, mas não sei muito sobre o que acontece quando o caminho físico configurado de um site é alterado enquanto está sob carga)

Para deixar claro, minha única preocupação aqui é a experiência dos meus usuários finais. Meu objetivo é evitar distúrbios para eles, não conveniência para mim.

jayrdub
fonte
1
Redefina a raiz da web. Qualquer reciclagem ( acho que não) e reinicialização do pool de aplicativos são então a) provavelmente não "desnecessárias" eb) ajudam o processo do trabalhador a manter uma idéia realista sobre o estado de seu conteúdo e caches. É uma solução inteligente, claro, mas inteligente raramente significa estável. Descubra o que a maioria das pessoas faz e faça isso.
TristanK
Essa é uma ótima pergunta, estou procurando uma resposta para isso há muito tempo. Tudo o que eu já vi é uma implantação contínua sob um balanceador de carga (que eu não tenho) ou uma cópia / svn simples de arquivos no webroot (que eu não gosto).
Jayrdub #
1
Portanto, tente redirecionar a raiz da web primeiro.
TristanK

Respostas:

3

uma maneira de implantar o código ASP.NET com o mínimo possível de perturbações no site.

Parece que esse objetivo e sua solução proposta não estão alinhados, porque agora você tem um monte de trabalho ou scripts extras envolvidos para cada implantação.

Uma coisa que eu vi foi instalar um cliente svn no servidor de produção, e o site de produção é uma cópia com check-out de um local / filial específico na árvore de controle de origem. Dessa forma, pelo menos você só precisa atualizar os arquivos alterados para novas implantações.

Joel Coel
fonte
Essa operação de rede faria com que os artefatos do site estivessem em um estado de ambiguidade por muito tempo. Essa é a situação exata que estou tentando evitar. Estou tentando eliminar o tempo em que os assemblies sob o webroot são de versões diferentes.
Jayrdub
1
O "trabalho extra e os scripts envolvidos" não é uma preocupação, estamos totalmente automatizado
jayrdub
Eu acho que para ser justo, perturbação e trabalho necessário não são realmente a mesma coisa
Mark Henderson
Perturbação do usuário final do meu site é o que eu estou me referindo
jayrdub
2

Criei uma pasta atrás da minha raiz da web chamada _images

C:\DEV\_IMAGES

depois copiou um monte de arquivos gif para ele. Eu criei um link simbólico NTFS na minha raiz usando

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

No Visual studio 2010, eu "Mostrar todos os arquivos", atualizo ... e incluo as novas "webimages" em meu projeto. Agora posso apontar para ...

img src='webimages/icon.gif'

Quando executo o aplicativo, ele também funciona bem na minha máquina local.

Eu não vou saber se ele funciona no servidor real (IIS 7) até que a infraestrutura resolva isso, alguém conhece algum problema sobre por que isso não funcionaria na produção?

Sinto que os direitos devem existir e, em caso afirmativo, que ótima maneira de simplificar o compartilhamento de pastas (de todos os tipos) entre aplicativos da web.

Ainda não tentei expressar isso no TFS; portanto, se alguém tiver algum comentário sobre isso, avise-nos!

Greg
fonte
0

Isso não funcionará porque o IIS pode pensar que o web.config foi alterado por outro programa. O IIS provavelmente lançará uma exceção System.Configuration.ConfigurationErrorsException. Eu sugeriria escrever algum tipo de script para alterar apenas o diretório inicial do site.

Cory
fonte