Dün gece bir ASP.NET MVC uygulaması dağıtıyordum ve IIS7 ile tümleşik kipte konuşlandırmanın daha az iş olduğunu öğrendim. Benim sorum fark nedir? Ve birini veya diğerini kullanmanın etkileri nelerdir?
Dün gece bir ASP.NET MVC uygulaması dağıtıyordum ve IIS7 ile tümleşik kipte konuşlandırmanın daha az iş olduğunu öğrendim. Benim sorum fark nedir? Ve birini veya diğerini kullanmanın etkileri nelerdir?
Yanıtlar:
Klasik mod (IIS6 ve altındaki tek mod), IIS'nin yalnızca doğrudan ISAPI uzantıları ve ISAPI filtreleriyle çalıştığı bir moddur. Aslında, bu modda, ASP.NET sadece bir ISAPI uzantısıdır (aspnet_isapi.dll) ve bir ISAPI filtresi (aspnet_filter.dll). IIS, ASP.NET'i ISAPI'de uygulanan harici bir eklenti olarak ele alır ve kara kutu gibi çalışır (ve yalnızca ASP.NET'e istek vermesi gerektiğinde). Bu modda, ASP.NET PHP veya IIS için diğer teknolojilerden çok farklı değildir.
Diğer yandan, tümleşik mod, IIS7'de, IIS boru hattının ASP.NET istek boru hattıyla sıkı bir şekilde tümleşik olduğu (yani, yalnızca aynı olduğu) yeni bir moddur. ASP.NET istediği her isteği görebilir ve işleri yol boyunca değiştirebilir. ASP.NET artık harici bir eklenti olarak değerlendirilmiyor. Tamamen karıştırılmış ve IIS'ye entegre edilmiştir. Bu modda, ASP.NET HttpModule
ler temel olarak bir ISAPI filtresinin sahip olabileceği kadar güce sahiptir ve ASP.NET HttpHandler
ler bir ISAPI uzantısının sahip olabileceği neredeyse eşdeğer kapasiteye sahip olabilir. Bu modda, ASP.NET temel olarak IIS'nin bir parçasıdır.
HttpModules
Yöntemlerle / olaylarla uğraşmak iis7
, olduğundan daha fazla işlevselliğe sahip iis6
mi? bu konuyu biraz açıklayabilir misin?
Entegre uygulama havuzu modu
Uygulama havuzu Tümleşik moddayken, IIS ve ASP.NET'in tümleşik istek işleme mimarisinden yararlanabilirsiniz. Uygulama havuzundaki bir alt işlem bir istek aldığında, istek sıralı bir olaylar listesinden geçer. Her olay, isteğin bölümlerini işlemek ve yanıtı oluşturmak için gerekli yerel ve yönetilen modülleri çağırır.
Uygulama havuzlarını Tümleşik modda çalıştırmanın birçok avantajı vardır. İlk olarak IIS ve ASP.NET'in istek işleme modelleri birleştirilmiş bir işlem modeliyle tümleştirilir. Bu model, daha önce IIS ve ASP.NET'te kimlik doğrulama gibi çoğaltılan adımları ortadan kaldırır. Ayrıca, Tümleşik mod, yönetilen özelliklerin tüm içerik türlerinde kullanılabilir olmasını sağlar.
Klasik uygulama havuzu modu
Bir uygulama havuzu Klasik moddayken, IIS 7.0 istekleri IIS 6.0 çalışan işlemi yalıtım modundaki gibi işler. ASP.NET istekleri önce IIS'de yerel işlem adımlarından geçer ve yönetilen çalışma zamanında yönetilen kodun işlenmesi için Aspnet_isapi.dll dosyasına yönlendirilir. Son olarak, istek yanıtı göndermek için istek IIS üzerinden yönlendirilir.
IIS ve ASP.NET istek işleme modellerinin bu şekilde ayrılması, kimlik doğrulama ve yetkilendirme gibi bazı işlem adımlarının çoğaltılmasına neden olur. Ayrıca, form kimlik doğrulaması gibi yönetilen kod özellikleri yalnızca ASP.NET uygulamaları veya aspnet_isapi.dll tarafından işlenecek tüm istekleri komut dosyası eşleştirdiğiniz uygulamalar için kullanılabilir.
Bir üretim ortamını IIS 7.0'a yükseltmeden ve uygulamaları Tümleşik moddaki uygulama havuzlarına atamadan önce mevcut uygulamalarınızı Tümleşik modda uyumluluk açısından sınadığınızdan emin olun. Uygulama havuzuna Klasik modda bir uygulama eklemeniz gerekir, ancak uygulama Entegre modda çalışmazsa. Örneğin, uygulamanız IIS'den yönetilen çalışma zamanına geçirilen bir kimlik doğrulama belirtecine güvenebilir ve IIS 7.0'daki yeni mimari nedeniyle işlem uygulamanızı bozar.
Alınan: IIS7'de DefaultAppPool ve Classic .NET AppPool arasındaki fark nedir?
Orijinal kaynak: IIS Mimarisine Giriş
IIS 6.0 ve önceki sürümleri:
ASP.NET, IIS ile bir ISAPI uzantısı, bir C API (C Programlama dili tabanlı API) aracılığıyla entegre edildi ve kendi uygulama ve istek işleme modelini ortaya çıkardı.
Bu, biri yerel ISAPI filtreleri ve uzantı bileşenleri için, diğeri yönetilen uygulama bileşenleri için olmak üzere iki ayrı sunucu (istek / yanıt) boru hattını etkili bir şekilde ortaya çıkardı. ASP.NET bileşenleri tamamen ASP.NET ISAPI uzantı balonunun içinde yürütülür ve SADECE IIS komut dosyası eşleme yapılandırmasında ASP.NET ile eşlenen istekler için.
ASP.NET dışı içerik türlerine yönelik istekler: - resimler, metin dosyaları, HTML sayfaları ve komut dosyası içermeyen ASP sayfaları, IIS veya diğer ISAPI uzantıları tarafından işlendi ve ASP.NET tarafından görülmedi.
Bu modelin en büyük sınırlaması, ASP.NET modülleri ve özel ASP.NET uygulama kodu tarafından sağlanan hizmetlerin ASP.NET dışı isteklerde KULLANILMAMASI idi.
SCRIPT HARİTASI nedir?
Komut dosyası eşlemeleri, dosya uzantılarını, bu dosya türü istendiğinde çalışan ISAPI işleyicisiyle ilişkilendirmek için kullanılır. Komut dosyası eşleminde ayrıca, isteğin işlenmesine izin vermeden önce istekle ilişkili fiziksel dosyanın var olduğunu doğrulayan isteğe bağlı bir ayar bulunur.
İyi bir örnek olabilir seen here
IIS 7 ve üstü
IIS 7.0 ve üstü, yepyeni bir C ++ API tabanlı ISAPI sağlamak için sıfırdan yeniden tasarlanmıştır.
IIS 7.0 ve üstü, ASP.NET çalışma zamanını Web Sunucusu'nun temel işlevleriyle tümleştirerek, modüller (IHttpModules) olarak bilinen hem yerel hem de yönetilen bileşenlere maruz kalan birleştirilmiş (tek) istek işleme ardışık düzenini sağlar
Bunun anlamı, IIS 7'nin herhangi bir içerik türü için gelen istekleri, her ikisiyle birlikte NON ASP.NET Modules / native IIS modules
ve ASP.NET modules
tüm aşamalarda istek işleme sağlamasıdır. NON ASP.NET içerik türlerinin (.html, statik dosyalar) .NET modülleri tarafından işlenmesinin nedeni budur. .
IHttpModule
Tüm uygulama içeriği için yürütme yeteneğine sahip yeni yönetilen modüller ( ) oluşturabilir ve uygulamanıza gelişmiş bir istek işleme hizmetleri seti sağlayabilirsiniz.IHttpHandler
)Klasik modda IIS h ISAPI uzantılarını ve ISAPI filtrelerini doğrudan çalışır. Ve biri yerel kod için diğeri yönetilen kod için olmak üzere iki boru hattı kullanır. Klasik modda IIS 7.x'in tıpkı IIS 6 gibi çalıştığını ve IIS 7.x özelliklerinden ek avantajlar elde edemeyeceğinizi söyleyebilirsiniz.
Entegre modda IIS ve ASP.Net, klasik modda olduğu gibi Asp.net'teki iki DLL'ye bağlı olarak sıkıca bağlanır.