2010-05-19 3 views
1

Avec IIS 6, l'isolation des applications se produit-elle en fonction du pool d'applications? Si oui, que se passe-t-il lorsqu'il y a plus d'un répertoire virtuel dans un pool d'applications? Est-ce qu'ils partagent tous la même mémoire et si un répertoire virtuel tombe en panne, toutes les autres applications tombent elles aussi en panne?ASP.NET et l'isolation des applications

Répondre

2

Si la fonctionnalité dans un répertoire virtuel plante, oui, il peut planter ou endommager d'autres applications du même pool d'applications, y compris celles des autres répertoires virtuels. Protégez vos applications en les plaçant dans des pools d'applications distincts.

Les répertoires virtuels ne sont pas eux-mêmes ségréger la mémoire ou les ressources. Cela a d'autres implications aussi. Par exemple, vos variables statiques dans une application peuvent être affectées en définissant des variables statiques dans une autre application dans le même pool d'applications.

Dans IIS 6, le point d'un pool d'applications est assez simple: pour séparer les applications afin que l'écrasement ne supprime pas le reste. Dans IIS 7, c'est toujours le but principal, mais there is a little more to it.

Modifier: Pour clarifier: Chaque pool d'applications est son propre «processus de travail», et un écrasement ne nuira pas aux autres pools d'applications. Chaque répertoire virtuel est simplement cela: un moyen de faire agir IIS comme s'il y avait un répertoire à cet endroit. Lorsque vous créez un répertoire virtuel avec le même nom et le même emplacement que le dossier vers lequel il pointe, par défaut cela ne fait pas faire quoi que ce soit. Vous pouvez utiliser des répertoires virtuels pour une variété de raisons, en plus de faire des URL comme vous le souhaitez: Vous pouvez les utiliser pour la sécurité. Et vous pouvez les utiliser pour mettre des appels dans des pools d'applications particuliers, comme nous en avons discuté.

Les gens assimilent souvent les répertoires virtuels aux applications Web car c'est généralement où vous voulez utiliser la puissance de configuration des répertoires virtuels - par application Web. L'état de session n'est maintenu que dans l'application Web, et non parmi toutes les applications Web d'un pool d'applications. Pour stocker des valeurs partagées entre différentes applications Web, vous devez faire autre chose. Le cache ASP.NET, cookies, db, etc. Mettre différents dossiers dans votre application en tant que différents répertoires virtuels et Séparer les pools d'applications les mettrait dans différents processus et détruirait leur état de session partagé.

+0

Si un recyclage se produit, cela signifie-t-il qu'il est effectué au niveau du pool d'applications, de sorte que tous les répertoires virtuels de ce pool d'applications sont redémarrés? – user31673

+0

@ user54064: oui, c'est correct. –

+0

Le partage de l'état de la session se produit-il au niveau du répertoire virtuel ou du pool d'applications? – user31673

1

Différents répertoires virtuels peuvent avoir différents pools d'applications. Si elles partagent le même pool d'applications et explosent, l'application entière se bloque. Si vous avez configuré différents pools d'applications pour les répertoires virtuels, ils sont isolés. Gardez à l'esprit que la configuration de différents pools d'applications pour vos répertoires virtuels a d'autres conséquences, telles que le manque de capacité à partager en état de session mémoire. Dans ce cas, vous devez utiliser un stockage hors processus.

Questions connexes