System.DirectoryServices Sınıfı ile IIS’e Hükmedelim
Merhaba arkadaşlar bu makalemiz de System.DirectoryServices sınıfını kullanarak IIS’de var olan bir site üzerinde virtual directory oluşturacağız.
Eger bir servis saglayıcı isek iis üzerinde çok fazla degisiklik yapmak zorunda kalırız. Bazı durumlar da müsteriler virtual directory olusturma ihtiyacı duyabiliyor. Bunun için sürekli servis saglayıcı ile irtibat halinde olmaması ve is yükü çıkarmaması için kullanıcılara bir arayüz ile kendi virtual directory'lerini kendilerinin olusturmalarını saglayabiliriz. Iste bunun için .net framework bize System.DirectoryServices namespace'ni sunuyor.
System.DirectoryServices
System.DirectoryServices(SDS), active directory gibi dizinlere programatik olarak erismeyi saglayan .net framework kütüphanesidir. Örnegin iis üzerinde açtıgımız bir web sitesi yada virtual directory'yi bu namespace ile programatik olarak kolayca yapabiliriz.
Sınıfımız ile ön bilgiyi aldıktan sonra konu ile ilgili bir örnek yapalım. Ilk olarak iis üzerinde bir site açıp daha sonra da bu site üzerinde virtual directory açacagız.
Örnek
Örnegimiz için yeni bir web site olusturalım. Daha sonra projemize semDirectoryServices.cs isimli yeni bir class ekleyelim. Bu class asagıdaki gibi olacaktır. Class'a geçmeden önce iis'i yapılandırmamızı saglayan iis metabase dosyasını inceleyelim.
IIS Metabase Dosyası
Metatabanı, birçok IIS (Internet Information Services) yapılandırma degeri için depodur. Metatabanı düz metinli bir .XML dosyasıdır ve el ile veya programla düzenlenebilir. Ayrıca metatabanı çok verimli sekilde genisletilebilir. IIS dagıtımınız büyüdükçe metatabanınız da büyür; bununla birlikte bir devralma modeli kullanarak, yinelenen degerlerin açıkça bildirimi engellenerek, yapılandırma degerlerinin metatabanından okunması gerektiginde olusan is yükü azaltılır.
semDirectoryServices.cs |
usingSystem; publicclass semDirectoryServices public string SiteAdi
public string SiteYolu
public string SiteOlustur()// Bu fonksiyon ile IIS üzerinde bir site açacagız. DirectoryEntry YeniDizin; PropertyValueCollection propValues = path.Properties["ServerBindings"]; } catch (Exception Ex) |
Class ile isimiz simdilik bu kadar. Simdi kullanıcı ara yüzüne geçebiliriz. Formumuz üzerine;
5 adet label,
3 Textbox ve
1 Button ekleyelim.

Benim hazırladıgım görüntü yukarıdaki gibidir. Simdi buton üzerine tıklayıp sitemizi olusturacak kodları yazalım.
Button Click Eventi |
protected void btnSiteOlustur_Click(object sender, EventArgs e) |
Simdi yazdıgımız kodu test edelim.

Evet, uyarı olarak basarıyla olusturuldu dedi ama emin olmak için ilk olarak iis'e gidip bakalım gerçekten de eklendi mi?

IIS'de eklenmis JSimdi yazgelistir.com sitesi üzerinde sag tıklayarak göz at seçenegine tıklayalım.

Gerçekten de çalısıyormus J
Simdi bu siteye birde virtual directory ekleyelim. Bunun için Classs'ızın içine asagıdaki kodları ekleyelim.
semDirectoryServices.cs - Ek |
publicstring VirtualDirectoryOlustur() catch |
Olusturdugumuz forma bir adet daha Button ekleyelim. Bu buton altında da daha önce olusturdugumuz siteye yeni bir virtual directory ekleyecegiz.
vdOlustur Butonu Click Eventi |
protected void vdOlustur_Click(object sender, EventArgs e) |
Hemen test edelim J

Evet olusturuldu dedi ama birde iis'den bakalım.

Iste budur J
Bu makalenin de sonuna geldik. Bir sonraki makale de görüsmek üzere. Iyi çalısmalar dilerim
Sem Göksu
MCP | MCAD.NET |MCTS
sem.goksu@yazilimgunlugu.com
www.semgoksu.com | www.yazilimgunlugu.com
Kaynaklar
Yorumlar (1)
Super makale, teşşekkürler! Uzun bir google'amada sonuç bulamayıp umutsuzluğa kapıldığım anda çok iyi geldi! Arada sırada "Türkçe Sayfalar" a seçeneğine bakmayı herkese tavsiye ederim:) İyi kodlamalar!