Différence entre l'application et le répertoire virtuel


11

Je suis développeur asp.net, je suis toujours confus entre l'application et le répertoire virtuel dans IIS. Il semble que dans iis 6.0, vous ne pouvez créer qu'un répertoire virtuel.


1
Dans IIS6, vous créez un répertoire virtuel, puis le convertissez en application.
Mark Henderson

Réponses:


13

Ces deux-là sont faciles à confondre et les gens utilisent souvent les termes de façon interchangeable.

Un répertoire virtuel n'est qu'un pointeur vers un emplacement différent sur le disque. Il pointe vers un chemin fixe sur le disque différent de son dossier parent.

Une application est une frontière entre différents dossiers. ASP.NET l'utilise pour créer une nouvelle racine AppDomain (ou racine d'application). Une racine d'application utilise un dossier global.asax, bin différent et les autres dossiers app_ [.].

Dans IIS6 et IIS7, si vous créez un répertoire virtuel, ce n'est pas également une application par défaut. ASP.NET le placera dans le même AppDomain que son dossier parent.

Dans IIS6, vous pouvez convertir un répertoire virtuel ou un dossier normal en application en cliquant avec le bouton droit sur -> propriétés et en créant.

Dans IIS7, les options sont nommées différemment, mais c'est la même chose en arrière-plan. La création d'un répertoire virtuel vous permet de créer un vdir qui fait toujours partie de l'AppDomain de son parent, c'est-à-dire pas une application).

L'option "Ajouter une application" crée en fait un répertoire virtuel ET le marque comme une application. (vous remarquerez qu'il vous permet de spécifier un chemin).

Vous pouvez également cliquer avec le bouton droit sur un dossier existant (ou vdir) et convertir en application. C'est un moyen de créer la limite d'application sur un dossier régulier ou virtuel existant.


Le site Web par défaut sur mon IIS 7 exécute MOSS 2007 (SharePoint). Comme je veux que les utilisateurs se sentent toujours sur le portail, j'ai créé une application Web ASP.NET de marque similaire et l'ai configurée en tant qu'application basée sur un répertoire virtuel sous le même site. Le site Web par défaut et cette application ASP.NET utilisent le même pool d'applications. Tout d'abord, cette pratique est-elle sûre / bonne? Deuxièmement, si j'active et utilise la session dans l'application ASP.NET, cela mettra-t-il en péril l'intégrité / les performances de la session gérée SharePoint, ou affectera-t-il SharePoint d'une autre manière?
Utilisateur Web du

@WebUser Il est correct de les avoir dans le même pool d'applications, et comme ce sont des applications distinctes dans le pool d'applications, l'état de la session sera séparé et isolé les uns des autres. Cependant, je recommande de toute façon d'utiliser un pool d'applications distinct. Si quelque chose échoue dans l'un, vous n'avez pas besoin de prendre les deux pour recycler ou réparer l'autre. Et vous aurez plus de flexibilité pour verrouiller les autorisations NTFS afin de les isoler les unes des autres.
Scott Forsyth - MVP

@ ScottForsyth-MVP J'ai tenu compte de votre suggestion car je voulais qu'ils soient totalement isolés. J'ai créé un nouveau pool d'applications et un nouveau compte de service, et j'ai utilisé cet article pour configurer l'identité. Je ne sais pas pourquoi mais l'application lance un System.UnauthorizedAccessExceptionaprès un certain temps pour afficher la page; l'application est toujours fonctionnelle mais elle est lente et génère l'exception m'invitant à ouvrir Visual Studio. Des réflexions sur ce qui me manque?
Utilisateur Web

@ ScottForsyth-MVP pouvez-vous s'il vous plaît regarder cette question que j'ai postée sur ServerFault? Merci!
Utilisateur Web

@WebUser. C'est probablement que votre identité personnalisée doit être ajoutée au groupe IIS_WPG. C'était une exigence dans IIS6. J'ai aussi répondu à votre autre message.
Scott Forsyth - MVP

2

Vous pouvez également vérifier .. Saviez-vous: Différence entre le répertoire virtuel et l'application dans IIS 7 / 7.5

Modifié: Pour citer le site, car le lien est mort;

Dans IIS 7 / 7.5, vous avez la possibilité de créer un répertoire virtuel et des applications.

Qu'est-ce qu'un répertoire virtuel?

Le répertoire virtuel est un répertoire mappé sur un répertoire physique local ou un répertoire sur un serveur distant. Un répertoire virtuel verra son code exécuté dans le même processus de travail que le processus parent. Le pool d'applications du site Web et du répertoire virtuel est le même.

Image05

Qu'est-ce qu'une application?

Une application est identique au répertoire virtuel, sauf que vous avez la possibilité d'exécuter une application dans un pool d'applications différent.

Image06

REMARQUE: voici à quoi ressemblent les captures d'écran ci-dessus dans applicationhost.config


0

Un répertoire virtuel n'est rien, mais pointe simplement ou fait référence à votre dossier sur votre machine locale ou votre serveur distant. Si vous créez un répertoire virtuel sous Site Web par défaut dans IIS. Supposons que si le site Web par défaut se bloque en raison d'un problème interne, vous ne pouvez pas accéder à votre répertoire virtuel.

Ajouter une application n'est rien d'autre qu'un groupe de fichiers qui fournit du contenu ou fournit des services via des protocoles. Une application appartient à un pool d'applications; Supposons qu'en raison d'un problème, le site Web par défaut s'est écrasé, cela n'affectera pas les applications qui appartiennent au pool d'applications.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.