Kaan Tezgel

Catch the future

blog hakkında

Yazılım dünyası, microsoft teknolojileri, iş hayatı, kişisel gelişim, yaşadıklarımız ve hayata dair ne varsa...

Web uygulamalarımızı yayınlayabilmek ve onları yönetebilmek için mutlaka bir web sunucusuna ihtiyaç duymaktayız. Microsoft tarafından gelitirilen ve web abanlı .Net uygulamalarımızı sunucu tarafında yayınlamamıza olanak veren uygulamanın adı da IIS (Internet Information Services) yani İnternet Bilgi Servisleri. Bu makalede, Microsoft tarafından geliştirilen son IIS sürümü olan IIS 7.0 ile birlikte gelen yeniliklere değinmeye çalışacağız.

IIS ilke defa 2001 yılında Windows NT’nin piyasaya srülmesi ile karşımıza çıktı. Daha sonra geçirmiş olduğu 4 yeni sürüm atlaması ile IIS 5.0’ a ulaştığında artık birçok insan tarafından bilinen kulanışlı bir web server uygulaması halini aldı. Bugün ise Windows Vista ile birlikte IIS 7.0 yayınlandı. Gelin şimdi IIS 7.0 ile hayatımıza ne gibi kolaylıklar eklendiğini inceleyelim.

Modüler Web Sunucusu

Daha önceki IIS sürümlerinde, kurulum esnasında seçtiğimiz opsiyonalarda değşiklik yapmak istediğimizde, yada sunucumuza yeni bir özellik katmak istediğimizde bu değişiklik için tüm kurulumu baştan yapmamız gerekliydi. Bu da sunucumuzun bi süre pasif durumda kalmasına, gereksiz zaman kaybı ve iş yüküne neden lmaktaydı. Oysa IIS 7.0 ile birlikte gelen 40 dan fazla plug-in ve server konfigürasyon seçeneğini, herhangi bir kurulum yapmadan aşağıda gösterilen ekran aracılığı ile yönetmek mümkün.

Resim - 1: IIS 7.0 genel konfigürasyon seçeneleri yönetim ekranı.

Makalenin ilerleyen bölümlerinde görebileceğimiz gibi, burada bulunan plug-in lere yenilerini eklemek hatta kendi plug-in lerimizi de geliştirerek sunucumuza yeni özellikler kazandırmak da artık mümkün.

Basitleştirilmiş Yayınlama ve Konfigürasyon Yönetimi

Yukarıdaki ekranda yapabileceğimiz konfigürasyon ayaralarını hem web site hem de server bazında XML dosyasında bilgileri tutarak da yapmamız mümkün. Bu çok yeni özelliğin nasıl kllanılacağına gelince; ASP.NET ile birlikte gelen ve kolaylıkla kullandığımız web.config dosyalarımızdaki mantık aynen IIS içinde artık geçerli.

applicationHost.config dosyası içerisinde belirteceğimiz detaylar ile sunucu ayarlarımızı yapmak artık çok kolay bir hale geliyor. Aşağıda kullanımı ile ilgili bir örneği görebilirsiniz.

<configuraion>
<system.webServer>
<directoryBrowse enabled=”true” />
</system.webServer>
<myBandwidthThrottler enabled=”true” />
</configuration>

Geliştirilmiş Yönetim Ekranı

Aşağıda görüntüsünü inceleyebilidğimiz ekran daha önceki IIS sürümlerinde gelen IIS Manager, InetMgr.exe nin yerini almış durumda. Bu yeni ekran ile detaylarını birazdan göreceğimiz birçok işlemi çok daha hızlı e kolay bir şekilde gerçekleştirmemiz mümkün hale geliyor.

Resim – 2 : IIS Manager’ın en yeni ekran görüntüsü

Gelen en önemli yeniliklerden birisi, firewall’a takılmadan geçebilen HTTP / SSL bağlantısı ile uzaktan server yönetimi yapabilmemiz. Bu yenilik en çok dışardaki bir firmadan hosting hizmeti alanların işine yarayacağa benziyor. Çünkü bu yapı ile artık kendi PC’mizde bulunan IIS Manager’a uzaktaki web server’ımızda bulunan bir siteyi ekleyebiliyor ve tüm yönetimsel işlemleri kendi bilgilsayarımız üzerinden kolaylıkla gerçekleştirebiliyoruz. Tabi bununla ilgili yetkiyi yine server tarafında bulunan hosting firmasını bize vermiş olmaı gerekiyor. Kısacası kullanıcıya verilen yetkiler çerçevesinde remote desktop bağlantısı kullanılmadan doğrudan IIS üzerinden önetim işlemlerini gerçekleştirmek mümkün hale geliyor.

Bunun dışında IIS 7.0 Manager kendi yazdığımız plug-inler ile yönetim yapmamıza da olanak sağlıyor. Geliştirdiğimiz plug-ini yine bu ekrana opsiyon olarak eliyor ve kendi kullanıcı arayüzleri ile yönetmemiz sağlanabiliyor. Bununla iligli detaylı bilgiyi IIS ‘in kendi istesindeki makaleleri inceleyerek alabilirsiniz.
http://iis.net/default.aspx?tabid=7&subtabid=73

Resim – 3: Appcmd.exe ekran görüntüsü

Yukarıdaki eranda da görüldüğü gibi bir diğer yöentim aracımız ise command line olarak çalışan appcmd.exe isimli dosya. Bu exe dosyası ile de sunucudaki web site’ları durdrup başlatmak, uygulama havuzunu resetlemek, çalışan worker process durumlarını gözlemlemek mümkün. Yine bu konu ile ilgili detaylı bilgi de IIS blog larından takip edilebilir.
Detaylı bilgi: http://iis.net/default.aspx?tabid=2&subtabid=25&i=954&p=1

Web Server’a Yeni Eklentiler Geliştirelim

Daha gelişmiş uygulamalar için server’a müdahale etmemiz gerektiğinde Windows Vista ile birlikte gelen Windows API ileri kullanmak mümkün. Daha önceki IIS sürümlerinde de bulunan bu API bu kez daha fazla geliştirlmiş ve kullanımı biraz daha kolaylaştrılmış durumda. C++ ile geliştirilen bu eklentiler. Windows Vista SDK içinde \inc\httpserv.h header dosyasında bulunmakta. Bu Apu içindeki birtakım class lar ile sunucu objelerini yönetip üzerine eklentiler gelitirilebiliyor.

Bu sınıflara birkaç örnek verecek olursak;

  • IHttpRequest sınıfı ile sunucuya gelen talepleri incelemek
  • IHttpResponse ile sunucunun verdiği cevapları görmek
  • IHttpServer sınıfı ile birtakım server fonksyionlarını yönetmek
  • IHttpUser ile kullanıcı kimlik doğrulaması işlemlerini yönetmek

Konu ile ilgili C++ geliştirmelerine ilgi duyuyorsanız detaylı bilgiliyi bu adresden inceleyebilirsiniz. http://mvolo.com/blogs/serverside/archive/2006/10/07/10-reasons-why-server-development-is-better-with-IIS7.aspx

ASP.NET Entegrasyonu

IIS 6.0 sürümüne kadar .Net Framework, web sunucusundan bağımsız çalışan bir kendi aşına bir framework idi. Görevi web server tarafından işlemesi için ona gönderilen aspx dosyalarını compile etmek haa yoksa html çıktıyı web server’a iletmekti. Bu yapı ile sadece aspx dosyaları .Net framework içerisinde sunulan form authentication, url rewiritting gibi servislere erişebilmekteydi. Php, cgi, .. vb uygulamalar bu servisleri kullanamıyordu. Fakat 7.0 ile gelen bu yeni yapıda artık .net framework tamamen web sunucusunun bir parçası şeklinde çalışmakta. Bu yeni kolaylık ie birlikte gerekli konfigrasyon ayarlarıyla diğer içerik çeşitlerine de .net framework tarafından sunulan servisere erişim izni verilebiliyor. Aşağıdaki resimde bu yeni yapı ile iligli mimari görüntüyü bulabilirsiniz.

Resim – 4: Daha Önceki Sürüm ve IIS 7.0 daki Asp.net Entegrasyon Yapısı Mimarisi

IIS deki bu yeni Integrated Mode ile tüm uygulamalar asp.net servislerine ulaşabilmekteler. Konuyla ilgili bir başka makaleyi bu adresden inceleyebilirsiniz.
http://mvolo.com/blogs/serverside/archive/2006/11/10/Stopping-hot_2D00_linking-with-IIS-and-ASP.NET.aspx

Gelişmiş Güvenlik Yapısı

IIS 7.0 ile server yöneticisinin hizmetine pek çok güvenlik kontrolü sunulmuş durumda. Temel güvenlik mekanizması sistemde kullanılmayan fonksiyonelliklerin pasif duruma getirilmesi üzerine kuruluyor. IIS 7.0 getirdiği pek çok yönetimsel ayar ile güvenlik yapısının tamamen biizm elimizde olmasını sağlıyor. IIS manager ekranı ve önceki bölümlerde anlatılan diğer yönetimsel araçlarla kullanılmayan özellikleri kapatabiliyoruz. Önceki IIS sürümlerinde kullanılmasa da worker process ayarları, konfigürasyon seçeneleri gibi birçok unsur sürekli açk haldeydi bunlara müdahale etme şansımız yoktu. Ama artık IIS buna imkan veriyor.

Bunun dışında Asp.Net’in doğrudan IIS ile entegre çalışması ile istediğimiz klasöre yada istediğimiz URL üzerinde Asp.Net Authentication mekanizmalarının çalıştırılmasını sağlıyabiliyoruz. Asp.net login kontrolleri, role base management prosedürleri ile güvenli kullanıcı tanımlama işlemlerini gerçekleştirebiliyoruz. Hemde bunu sadece aspx dosyalarımız için değil her türlü içerik için gerçekleştirmek mümkün.

Klasör erişimi konusunda da daha önceki sürümlerde bulunan IIS_IUSR account kontrolü daha gelişmiş bir hale getirilmiş. Artık bu yetkilendirme grubu ile ilgili belirlediğimiz kullanıcı ve şifrelerine gerçerlilik tarihi atayabiliyor ve hatta bunlar için belirli kullanıcı grupları oluşturarak sadece belkirlediğimiz gruptaki kullanıcıların belirlediğimiz yerlere erişebilmesini sağlayabiliyoruz.

Bir diğer önemli konu ise yine yukarıdaki bölümlerde de değindiğim uzaktan web server yönetimi konusu. Bu konuda da yine firewall’ a takılmadan HTTPS üzerinden server ayarlarına erişmerek her türlü konfigürsayon değişikliğini güvenli bir ortamda yapmak mümkün.

Gelişmiş Hata Yönetim Yapısı

IIS 7.0 ile birlikte gelen IIS Manager ekranı ile server da o an ne olup bittiğini, hangi web site’ların çalışır durumda olduğu, hangi worker process in ne zaman çalışmaya başlayığ ne zman recyle olduğu ile ilgili detaylı bilgilere ulaşmamızı sağlayan yeni bir ekran bulunmaktadır. RSCA (Runtime State and Control) adı verilen bu ekran üzerinden ilgili her türlü detaya ulaşmak mümkün.

Resim – 5: RSCA Yönetim Ekranı

İstersek bu ekran aracılığla, istersek IIS Manager üzerinden ya da eğer istersek Microsoft.Web.Administration API kullanarak bu server durum verisine ulaşabiliyoruz.

Eğer herhangi bir hata ile karılaşılması durumunda, event tracker artık bunları XML log dosyalarına yazıyor ve aşağıda gördüğümüz ekran aracılığı ile bu log bilgilerine ulaşabiliyoruz.

Resim – 6: XML Event Log Dosyası İçeriği

IIS 7.0 daki öçeklenebilir ve kişiselleştirilebilir yeni yapı sayesinde IIS le gelen Vista API lerini kullanarak kendi hata yönetim ve log mekanizmalarımızı da geliştirmemiz mümkün olabiliyor. Gerekli kodlamalarla event log bilgilerinin Sql Server tablolarımıza yada herhangi bir tezt dosyasına da yazılmasını sağlayabiliyoruz.

Sonuç

IIS 7.0 getirdiği bu yeni birçok özellik ile geleceğin web uygulama geliştirme ve yayınlama ortamını bizlere sağlamayı amaçlıyor. Artık çok daha gelişmiş hatta birden çok sunucu üzerinden paralel çalışan dağıtık web tabanlı sistemleri daha kolay yönetme ve ölçeklendirme konusunda bizlere daha fazla yardımcı oluyor. Bu web farm denilen yapılar, IIS 7.0 ile birlikte aynı durum mekanizmalarını kullanır aynı ortak makinalardaki hafıza bloklarına erişir hale gelebiliyorlar artık. Güvenlik ve performans ile ilgili gelen yenilikler ile de daha hızlı çalışan ama yetkisiz kişilerce erişilmesi ço daha güç lan daha güvenli sistemlere yaklaşmış bulunmaktayız.

Vista nın server versiyonunun da çıkarak piyasada yaygınlaşmasıyla çok daha fazla gündemimizde olacak IIS 7.0 konusunda gelişmeleri bende çok yakından takip ediyor olacağım.

Referanslar

[1] MSDN Magazine, Mart 2007
[2] http://mvolo.com/blogs/serverside/default.aspx
[3] http://www.iis.net/



“IIS 7.0 ve Yenilikler” için 12 Yorum Yapılmış

  1. tamam vistada sorun çıkmayabilir ama xp pro da ie7 kurulu iken iss devamlı hata oluyor. localhost dedigim zaman hep kullanıcı adı ve şifre istiyo anonim aç dedigim halde hep aynı kendim şifre veriyom gene olmuyo.

    mehmet aydın

  2. tamam vistada sorun çıkmayabilir ama xp pro da ie7 kurulu iken iss devamlı hata oluyor. localhost dedigim zaman hep kullanıcı adı ve şifre istiyo anonim aç dedigim halde hep aynı kendim şifre veriyom gene olmuyor.

    mehmet aydın

  3. IIS düzgün kurulmamış gibi görünüyor. Normalde böyle bir problem yaşanmamalı. wwwroot adlı klasörün izinlerini kontorl etmenizi rica ediyorum. Birde http://localhost/ yazarak mı erişmeye çalıştığınızda böyle bir sorunla karşılaşılıyor?

    Konu incelenerek sorun çözülebilir, Kendi sisteminizle ilgili bir sorun gibi görünüyor. Daha detaylı bilgi verirseniz yardımcı olmaya çalışalım.

    Kaan Tezgel

  4. sizden ricam ben bunu şimdi kaldıracagım bide bunun nasıl kuruldugunu ve ayarlarını bi anlatırsanız. benim sorunum ve daha bir çok kişinin aynı sorunu var yani iss sorunu benden kullanıcı adı ve şifre istiyo ve bunu ne yaptıysam degiştiremedim.

    mehmet aydın

  5. bu ikinci yazışım benim gibi bu konudan dertlenen çok arkadaşım var mümkünse bunun xp dede nasıl yapıldıgını bi anlatırsanız memnun oluruz. ayrıca xpde bu destek yok diyenler dahi var.

    mehmet aydın

  6. Program ekle kaldır altındaki, windows bileşeni ekle kısmından yapıyoruz kurulumu. Karışımıza gelen listede IIS (Internet Information Services) ksımını işaretleyip ileri diyoruz. Eğer zaten işaretliye ve işareti kaldırıp ileri dersek IIS silmiş oluyoruz. Yalnız bu işlemler sırasında windows’unuzu yüklediğiniz CD ye ihtiyacınız olacağını hatırlatırım.

    Kurulumdan sonra aslında pek bir ayar yok. Windows administrator şifreniz ile kurulum ve yönetim işlemlerinizi yapmanız gerekli. http://localhost/iisstart.asp yazarak doğruluğunu kontrol edebilirsiniz. Halen şifre soruyorsa problem window üzerinde wwwroot klasörüne erişim yetkiniz ile ilgili bir durumdur.

    Kaan Tezgel

  7. bu yetkiyi yani erişim yetkisini nasıl alacagız.

    mehmet aydın

  8. wwwroot klasörüne sağ tıklayıp, özellikler-güvenlik kısmından everyone grubuna full yetki verin. Ama bu dediğim gibi windows xp pro kulalnıyor iseniz, normalde olmaması gerken bir hata. Kurulum işlemini doğru yapıldığından ve IIS üzerinden en azından asp dosyalarının düzgün çalışmadığından emin olduktan sonra bu kontrolü yapmanızı öneririm.

    Kaan Tezgel

  9. Bu sayfayı görüntüleme yetkiniz yok
    Sağladığınız kimlik bilgilerini kullanarak bu dizini ya da sayfayı görüntüleme yetkiniz yok.

    mehmet aydın

  10. Bu sayfayı görüntüleme yetkiniz yok
    Sağladığınız kimlik bilgilerini kullanarak bu dizini ya da sayfayı görüntüleme yetkiniz yok
    bunu çözümünü yazarmısınız?

    çetin

  11. yaw bende beceremedim XP Pro da.Vista da sorun yok , IIS7 de çat diye oluyor ama XP Pro cıxx cııx cıxx

    hasan

  12. aynı sorun bende de oluştu, yetkiniz yok diyor :(

    baron

Yorum yapın