Diferença entre aplicativo e diretório virtual


11

Eu sou desenvolvedor asp.net, estou sempre confuso entre aplicativo e diretório virtual no IIS. Parece que no iis 6.0, você só pode criar um diretório virtual.


1
No IIS6, você cria um diretório virtual e o converte em um aplicativo.
Mark Henderson

Respostas:


13

É fácil confundir esses dois e as pessoas costumam usar os termos de forma intercambiável.

Um diretório virtual é apenas um ponteiro para um local diferente no disco. Aponta para um caminho fixo no disco diferente da pasta pai.

Um aplicativo é um limite entre diferentes pastas. O ASP.NET usa-o para criar uma nova raiz do AppDomain (ou raiz do aplicativo). Uma raiz de aplicativo usa uma pasta global.asax, bin diferente e as outras app_ [pastas.].

No IIS6 e IIS7, se você criar um diretório virtual, ele também não é um aplicativo por padrão. O ASP.NET o colocará no mesmo AppDomain que sua pasta pai.

No IIS6, você pode converter um diretório virtual ou uma pasta regular em um aplicativo clicando com o botão direito do mouse em -> Propriedades e em Criar.

No IIS7, as opções são nomeadas diferentes, mas são as mesmas em segundo plano. Criar um diretório virtual permite criar um vdir que ainda faz parte do AppDomain de seus pais, ou seja, não um aplicativo).

A opção "Adicionar aplicativo", na verdade, cria um diretório virtual E o marca como um aplicativo. (você notará que permite especificar um caminho).

Você também pode clicar com o botão direito do mouse em uma pasta existente (ou vdir) e converter em aplicativo. Essa é uma maneira de criar o limite do aplicativo em uma pasta regular ou virtual existente.


O site padrão no meu IIS 7 está executando o MOSS 2007 (SharePoint). Como quero que os usuários sintam que ainda estão no portal, criei um aplicativo Web ASP.NET de marca semelhante e o configurei como um aplicativo baseado em diretório virtual no mesmo site. O site padrão e esse aplicativo ASP.NET estão usando o mesmo pool de aplicativos. Primeiro de tudo, isso é seguro / boa prática? Em segundo lugar, se eu habilitar e usar a sessão no aplicativo ASP.NET, isso prejudicará a integridade / desempenho da sessão gerenciada do SharePoint, afetando o SharePoint de outra maneira?
Usuário Web

@WebUser Não há problema em tê-los no mesmo pool de aplicativos e, como são aplicativos separados no pool de aplicativos, o estado da sessão será separado e isolado um do outro. No entanto, eu recomendo usar um pool de aplicativos separado de qualquer maneira. Se algo falhar em um, você não precisa retirar os dois para reciclar ou consertar o outro. E você terá mais flexibilidade para bloquear as permissões NTFS para isolá-las uma da outra.
Scott Forsyth - MVP

@ ScottForsyth-MVP Eu segui sua sugestão, já que queria que elas fossem totalmente isoladas. Criei um novo pool de aplicativos e uma nova conta de serviço e usei este artigo para configurar a identidade. Não sei por que, mas o aplicativo lança um tempo System.UnauthorizedAccessExceptiondepois para exibir a página; o aplicativo ainda está funcional, mas é lento e gera a exceção, solicitando a abertura do Visual Studio. Alguma idéia do que estou perdendo?
Usuário da Web

@ ScottForsyth-MVP, você pode olhar para esta pergunta que eu publiquei no ServerFault? Obrigado!
Usuário da Web

@WebUser. Provavelmente, sua identidade personalizada precisa ser adicionada ao grupo IIS_WPG. Esse era um requisito no IIS6. Eu também respondi ao seu outro post.
Scott Forsyth - MVP

2

Você também pode verificar .. Você sabia: Diferença entre Diretório Virtual e Aplicativo no IIS 7 / 7.5

Editado: Para citar o site, como o link está morto;

No IIS 7 / 7.5, você tem a opção de criar um diretório virtual e aplicativos.

O que é um diretório virtual?

Diretório virtual é um diretório mapeado para um diretório físico local ou um diretório em um servidor remoto. Um diretório virtual terá seu código executado no mesmo processo de trabalho que o processo pai. O pool de aplicativos do site e do diretório virtual é o mesmo.

Imagem05

O que é um aplicativo?

Um aplicativo é idêntico ao diretório virtual, exceto que você tem a opção de executar um aplicativo em um pool de aplicativos diferente.

Image06

NOTA: é assim que as capturas de tela acima se parecem em applicationhost.config


0

Um diretório virtual nada mais é do que apontar ou se referir à sua pasta na máquina local ou no servidor remoto. Se você criar um diretório virtual em Site Padrão no IIS. Suponha que se o site padrão sofreu uma falha devido a algum problema interno, você não pode acessar seu diretório virtual.

Adicionar aplicativo é apenas um grupo de arquivos que fornece conteúdo ou presta serviços através de protocolos. Um aplicativo pertence a um pool de aplicativos; suponha que, devido a algum problema, o site padrão tenha sido travado, mas isso não afetará nenhum aplicativo pertencente ao pool de aplicativos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.