Uygulama ve sanal dizin arasındaki fark


11

Ben asp.net geliştiricisi, her zaman IIS uygulama ve sanal dizin arasında karıştı. İis 6.0, sadece sanal dizin oluşturabilirsiniz gibi görünüyor.


1
IIS6'da bir sanal dizin oluşturup bir uygulamaya dönüştürürsünüz.
Mark Henderson

Yanıtlar:


13

Bu ikisinin kafasını karıştırmak kolaydır ve insanlar genellikle terimleri birbirinin yerine kullanırlar.

Sanal dizin, diskteki farklı bir konumun göstergesidir. Disk üzerinde, üst klasörden farklı olan sabit bir yolu gösterir.

Uygulama, farklı klasörler arasındaki bir sınırdır. ASP.NET bunu yeni bir AppDomain kökü (veya uygulama kökü) oluşturmak için kullanır. Uygulama kökü farklı bir global.asax, bin klasörü ve diğer app_ [klasörleri] kullanır.

IIS6 ve IIS7'de bir sanal dizin oluşturursanız, bu aynı zamanda varsayılan olarak bir uygulama değildir. ASP.NET, üst klasörü ile aynı AppDomain içine koyacaktır.

IIS6'da sanal bir dizini veya normal bir klasörü -> özellikleri ve Oluştur'u sağ tıklatarak bir uygulamaya dönüştürebilirsiniz.

IIS7'de seçenekler farklı olarak adlandırılır, ancak arka planda aynıdır. Sanal dizin oluşturmak, üst öğesinin AppDomain'inin bir parçası olan bir uygulama olan bir vdir oluşturmanıza olanak tanır).

"Uygulama Ekle" seçeneği aslında sanal bir dizin oluşturur ve bunu bir uygulama olarak işaretler. (bir yol belirtmenize izin verdiğini fark edeceksiniz).

Ayrıca varolan bir klasörü (veya vdir) sağ tıklatıp Uygulamaya Dönüştür'ü de seçebilirsiniz. Bu, varolan normal veya sanal bir klasörde uygulama sınırı oluşturmanın bir yoludur.


IIS 7'mdeki varsayılan Web Sitesi MOSS 2007'yi (SharePoint) çalıştırıyor. Kullanıcıların hala portaldaymış gibi hissetmelerini istediğim için benzer markalı bir ASP.NET web uygulaması oluşturdum ve aynı site altında sanal dizin tabanlı bir uygulama olarak kurdum. Hem Varsayılan Web Sitesi hem de bu ASP.NET uygulaması aynı uygulama havuzunu kullanıyor. Her şeyden önce, bu güvenli / iyi bir uygulama mı? İkincisi, ASP.NET uygulamasında oturumu etkinleştirir ve kullanırsam, SharePoint'in yönetilen oturumunun bütünlüğünü / performansını, SharePoint'i başka bir şekilde etkileme tehlikesine neden olur mu?
Web Kullanıcısı

@WebUser Onları aynı uygulama havuzuna yerleştirmek uygun ve uygulama havuzundaki ayrı uygulamalar oldukları için oturum durumu birbirinden ayrı olacak ve izole edilecektir. Ancak, yine de ayrı bir uygulama havuzu kullanmanızı öneririz. Birinde bir şey başarısız olursa, diğerini geri dönüştürmek veya düzeltmek için her ikisini de almanız gerekmez. NTFS izinlerini birbirlerinden ayırmak için kilitlemek için daha fazla esnekliğe sahip olacaksınız.
Scott Forsyth - MVP

@ ScottForsyth-MVP Tamamen izole olmalarını istediğim için önerinizi aldım. Yeni bir uygulama havuzu ve yeni bir hizmet hesabı oluşturdum ve bu makaleyi kimliğini ayarlamak için kullandım. Neden bilmiyorum ama uygulama System.UnauthorizedAccessExceptionsayfayı görüntülemek için bir süre sonra atar ; uygulama hala işlevseldir ancak yavaştır ve Visual Studio'yu açmamı isteyen bir istisna verir. Neyi kaçırdığım hakkında bir fikrin var mı?
Web Kullanıcısı

@ ScottForsyth-MVP ServerFault'da gönderdiğim bu soruya bakabilir misiniz ? Teşekkürler!
Web Kullanıcısı

@WebUser. Muhtemelen özel kimliğinizin IIS_WPG grubuna eklenmesi gerekiyor. Bu, IIS6'da bir gereksinimdi. Ben de diğer yazınıza cevap verdim.
Scott Forsyth - MVP

2

Ayrıca şunları da kontrol edebilirsiniz .. Biliyor muydunuz: IIS 7 / 7.5'te Sanal Dizin ve Uygulama arasındaki fark

Düzenlendi: Bağlantıyı kaybettiğinden siteyi alıntılamak için;

IIS 7 / 7.5'te, Sanal Dizin ve Uygulamalar oluşturma seçeneğiniz vardır.

Sanal Dizin nedir?

Sanal Dizin, yerel bir fiziksel dizine veya uzak sunucudaki bir dizine eşlenen bir dizindir. Sanal Dizin, kodunun üst işlemle aynı çalışan işlemde yürütülmesini sağlayacaktır. Web Sitesi ve Sanal Dizin uygulama havuzu aynıdır.

image05

Uygulama nedir?

Bir Uygulama, bir Uygulamayı farklı bir uygulama havuzunda çalıştırma seçeneğiniz dışında Sanal Dizin ile aynıdır.

image06

NOT: yukarıdaki ekran görüntüleri applicationhost.config dosyasında bu şekilde görünür


0

Sanal dizin başka bir şey değildir, sadece yerel makinenizdeki veya uzak sunucunuzdaki klasörü işaret eder veya belirtir. IIS'de Varsayılan Web Sitesi altında sanal dizin oluşturuyorsanız. Varsayalım ki bazı dahili sorunlar nedeniyle varsayılan web sitesi çöktüyse sanal dizininize erişemezsiniz.

Uygulama ekleme başka bir şey değildir, protokoller üzerinden içerik sağlayan veya hizmet sağlayan bir grup dosyadır. Bir uygulama, bir uygulama havuzuna aittir; varsayılan web sitesi çöktü bazı sorun nedeniyle varsayalım uygulama havuzuna ait herhangi bir uygulama etkilemez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.