Unterschied zwischen Anwendung und virtuellem Verzeichnis

11

Ich bin asp.net-Entwickler und bin immer verwirrt zwischen Anwendung und virtuellem Verzeichnis in IIS. Es scheint, dass Sie in iis 6.0 nur virtuelles Verzeichnis erstellen können.

Ybbest
quelle
1
In IIS6 erstellen Sie ein virtuelles Verzeichnis und konvertieren es dann in eine Anwendung.
Mark Henderson

Antworten:

13

Diese beiden sind leicht zu verwechseln und die Begriffe werden häufig synonym verwendet.

Ein virtuelles Verzeichnis ist nur ein Zeiger auf einen anderen Speicherort auf der Festplatte. Es zeigt auf einen festen Pfad auf der Festplatte, der sich vom übergeordneten Ordner unterscheidet.

Eine Anwendung ist eine Grenze zwischen verschiedenen Ordnern. ASP.NET verwendet es, um einen neuen AppDomain-Stamm (oder Anwendungsstamm) zu erstellen. Ein Anwendungsstamm verwendet einen anderen Ordner global.asax, bin und die anderen Ordner app_ [.].

Wenn Sie in IIS6 und IIS7 ein virtuelles Verzeichnis erstellen, ist dies standardmäßig nicht auch eine Anwendung. ASP.NET legt es in derselben AppDomain ab wie sein übergeordneter Ordner.

In IIS6 können Sie ein virtuelles Verzeichnis oder einen regulären Ordner in eine Anwendung konvertieren, indem Sie mit der rechten Maustaste auf -> Eigenschaften und dann auf Erstellen klicken.

In IIS7 werden die Optionen unterschiedlich benannt, im Hintergrund sind sie jedoch gleich. Durch das Erstellen eines virtuellen Verzeichnisses können Sie ein vdir erstellen, das immer noch Teil der AppDomain des übergeordneten Verzeichnisses ist (dh keine Anwendung).

Die Option "Anwendung hinzufügen" erstellt tatsächlich ein virtuelles Verzeichnis UND markiert es dann als Anwendung. (Sie werden feststellen, dass Sie damit einen Pfad angeben können).

Sie können auch mit der rechten Maustaste auf einen vorhandenen Ordner (oder vdir) klicken und in Anwendung konvertieren. Auf diese Weise können Sie die Anwendungsgrenze für einen vorhandenen regulären oder virtuellen Ordner erstellen.

Scott Forsyth - MVP
quelle
Auf der Standardwebsite auf meinem IIS 7 wird MOSS 2007 (SharePoint) ausgeführt. Da ich möchte, dass Benutzer das Gefühl haben, sich noch im Portal zu befinden, habe ich eine ASP.NET-Webanwendung mit ähnlicher Marke erstellt und sie als virtuelle verzeichnisbasierte Anwendung unter derselben Site eingerichtet. Sowohl die Standardwebsite als auch diese ASP.NET-Anwendung verwenden denselben Anwendungspool. Ist dies eine sichere / gute Praxis? Zweitens: Wenn ich eine Sitzung in der ASP.NET-Anwendung aktiviere und verwende, gefährdet dies in irgendeiner Weise die Integrität / Leistung der von SharePoint verwalteten Sitzung und wirkt sich auf andere Weise auf SharePoint aus?
Web User
@WebUser Es ist in Ordnung, sie im selben App-Pool zu haben. Da es sich um separate Anwendungen im App-Pool handelt, ist der Sitzungsstatus getrennt und voneinander isoliert. Ich empfehle jedoch trotzdem, einen separaten App-Pool zu verwenden. Wenn etwas in einem fehlschlägt, müssen Sie nicht beide herunterfahren, um das andere zu recyceln oder zu reparieren. Und Sie haben mehr Flexibilität beim Sperren der NTFS-Berechtigungen, um sie voneinander zu isolieren.
Scott Forsyth - MVP
@ ScottForsyth-MVP Ich habe Ihren Vorschlag befolgt, da ich wollte, dass sie vollständig isoliert sind. Ich habe einen neuen Anwendungspool und ein neues Dienstkonto erstellt und diesen Artikel zum Einrichten der Identität verwendet. Ich weiß nicht warum, aber die Anwendung wirft System.UnauthorizedAccessExceptionnach einer Weile ein, um die Seite anzuzeigen. Die Anwendung ist immer noch funktionsfähig, aber langsam und gibt die Ausnahme aus, die mich zum Öffnen von Visual Studio auffordert. Irgendwelche Gedanken darüber, was mir fehlt?
Web-Benutzer
@ ScottForsyth-MVP Kannst du dir bitte diese Frage ansehen , die ich auf ServerFault gepostet habe? Vielen Dank!
Web-Benutzer
@WebUser. Es ist wahrscheinlich, dass Ihre benutzerdefinierte Identität zur Gruppe IIS_WPG hinzugefügt werden muss. Dies war eine Anforderung in IIS6. Ich habe auch auf Ihren anderen Beitrag geantwortet.
Scott Forsyth - MVP
2

Sie können auch überprüfen .. Wussten Sie schon: Unterschied zwischen virtuellem Verzeichnis und Anwendung in IIS 7 / 7.5

Bearbeitet: Um die Site zu zitieren, da der Link tot ist;

In IIS 7 / 7.5 haben Sie die Möglichkeit, ein virtuelles Verzeichnis und Anwendungen zu erstellen.

Was ist ein virtuelles Verzeichnis?

Virtuelles Verzeichnis ist ein Verzeichnis, das einem lokalen physischen Verzeichnis oder einem Verzeichnis auf einem Remoteserver zugeordnet ist. Bei einem virtuellen Verzeichnis wird der Code im selben Arbeitsprozess wie der übergeordnete Prozess ausgeführt. Der Anwendungspool der Website und des virtuellen Verzeichnisses ist identisch.

Image05

Was ist eine Anwendung?

Eine Anwendung ist mit dem virtuellen Verzeichnis identisch, außer dass Sie die Option haben, eine Anwendung in einem anderen Anwendungspool auszuführen.

Image06

HINWEIS: So sehen die obigen Screenshots in applicationhost.config aus

Vivek Kumbhar
quelle
0

Ein virtuelles Verzeichnis ist nichts anderes als ein Hinweis auf Ihren Ordner auf Ihrem lokalen Computer oder Remote-Server. Wenn Sie ein virtuelles Verzeichnis unter Standardwebsite in IIS erstellen. Angenommen, wenn die Standardwebsite aufgrund eines internen Problems abgestürzt ist, können Sie nicht auf Ihr virtuelles Verzeichnis zugreifen.

Anwendung hinzufügen ist nichts anderes als eine Gruppe von Dateien, die Inhalte bereitstellen oder Dienste über Protokolle bereitstellen. Eine Anwendung gehört zu einem Anwendungspool. Angenommen, aufgrund eines Problems ist die Standardwebsite abgestürzt. Dies hat keine Auswirkungen auf Anwendungen, die zum Anwendungspool gehören.

Gana AMS
quelle