Muammer Benzeş

"Duyduklarım, gördüklerim, bildiklerim..."

NAVIGATION - SEARCH

IIS 7'de WCF uygulaması yayınlama

IIS 7.0 . IIS 7.5 . Windows Server 2008

Geçtiğimiz günlerde WCF (Windows Communication Foundation) kullanılarak hazırlanan bir siteyi IIS 7 ile yayına açmam gerekti. Ancak WCF yayınlamak için yapmam gereken bazı işlemler olduğunu site çalışmayınca anladım :) WCF servisini çalıştırmak istediğimde 404 sayfa bulunamadı hatası alıyordum.

WCF, .NET Framework 3.0 ile gelen ve servise yönelimli mimari ile uygulama geliştirmek için ortayan çıkan bir framework'tür. Windows Server 2008 içerisinde .NET 3.0 varolmasına rağmen "gereksiz olanların çalışmaması" prensibi nedeniyle WCF uygulamaları da IIS 7 kurulduğunda çalışmamaktadır. Peki nasıl çalıştıracağım?

WCF uygulamasını IIS 7 üzerinde çalıştırabilmek için Integrated modda ayarlanmış bir application pool'un (uygulama havuzu) olması gerekiyor.

WCF uygulamasının yer aldığı web sitesinin de bu application pool'u kullanması gerekiyor.

Son olarak komut satırında "C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -i veya daha önceden WCF ile ilgili bazı yüklemeler yapılmış olma ihtimali var ise "C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r -y komutunun çalıştırılması gerekiyor.

Bu komutları aşağıdaki resimde görüldüğü gibi komut satırında ilgili dizine gidip de çalıştırmak mümkün.

 

Tüm bu işlemleri tamamladıktan sonra artık WCF servisi çalışmaya başladı. Artık sunucu üzerinde WCF uygulamaları yayınlayabiliyorum...

PSHyperV : PowerShell yönetim kütüphanesi

CodePlex . Hyper-V

Codeplex yazılarımıza yine bir projenin tanıtımı ile devam ediyoruz. Bu seferki projemiz, IT Pro tarafını ilgilendiriyor ve Hyper-V yönetimi ile ilgili : PowerShell management library for Hyper-V

PowerShell management library for Hyper-V (pshyperv); Windows Server 2008 içerisinde bütünleşik olarak yeralan, donanım destekli (hardware-assisted) sanallaştırma imkanı sağlayan Hyper-V rolü için komut satırından ve/veya kaydedilmiş script'ler ile yönetim imkanı sağlayan bir araç setidir. Microsoft çalışanlarından James O'Neill tarafından oluşturularak açık kaynaklı bir proje olarak Codeplex'e eklenmiştir.

Araç setinin detaylarına geçmeden kısaca PowerShell'den bahsetmek gerekirse : DOS zamanından beri varolan komut satırı ile yapılan kısıtlı işlemleri genişletmek için Windows 2000 ile ortaya çıkan Windows Scripting Host'un (WSH) da yetersiz kalması ile 2006 yılında öncelikle Windows Server 2003 için ortaya çıkan bir komut satırı ortamı ve script dilidir. Başlangıç olarak 130'dan fazla komut satırı aracı ile başlamış, öncelikli olarak işletim sistemlerini hedeflemiştir. Windows XP SP2, Windows Server 2003 SP1, Windows Vista, Windows Server 2008 işletim sistemlerinde çalışan PowerShell bundan sonra çıkacak işletim sistemlerinde de çalışmaya devam edecektir. PowerShell, sadece işletim sistemlerinde değil hemen her Microsoft ürünün yeni versiyonu için de PowerShell desteği eklenmektedir. Örneğin Exchange 2007'de bazı işlemler sadece PowerShell ile yapılabilmektedir.

PowerShell hakkında bu kadar bilgiden sonra projemize dönecek olursak; bu kütüphane yardımı ile Hyper-V rolünü yönetimsel araçlara gerek kalmadan komut satırı ile yönetmek ve script'ler hazırlayarak yönetimi otomatikleştirmek mümkün. Örneğin New-VM komutu ile yeni bir sanal makine oluşturabilir, Set-VMMemory komutu ile sanal makinenin RAM miktarı değiştirebilir.

PSHyperV kütüphanesinden nasıl yararlanabileceğimize göz atalım : Öncelikle proje sayfasındaki Downloads linklerinden birine tıklayarak kütüphaneyi indirebileceğimiz sayfaya ulaşıyoruz. Bu sayfada indirebileceğimiz iki adet dosya görüntüleniyor. hyperv.zip isimli dosya, kütüphaneyi çalıştırmak için gerekli olan dosyaları içeriyor. Pshyperv.pdf dosyası ise kütüphane ile ilgili genel bilgiler ve komutların nasıl kullanılacağı ile ilgili bilgiler içeren yardım dosyası.

hyperv.zip linkine tıklayıp görüntülenen lisans anlaşmasını I Agree'ye tıklayarak kabul edip dosyayı indirilebilir. İndirdiğimiz zip dosyasının içerisinde hyperv.ps1 ve hyperv.format.ps1xml dosyaları yer alıyor. hyperv.ps1 dosyası kütüphanede yeralan komutları çalıştırabilmemiz için gerekli olan PowerShell script dosyası. hyperv.format.ps1xml dosyası ise bu komutlar ile ilgili tanımların yer aldığı XML dosyası. Bu dosyaları çalıştırabilmek için zip dosyası içerisinden C:\hyperv gibi bir klasöre kopyalamak gerekiyor.

Kütüphaneyi kullanmak için PowerShell konsolu açıp içerisinden dosyaların yer aldığı klasöre gidip  ". .\hyperv.ps1" komutunu çalıştırmak gerekiyor. Bu komutu çalıştırdıktan sonra kütüphane içerisinde yeralan komutlar kullanılabiliyor.  



Örneğin aşağıdaki komutları girerek 1 GB RAM'li, 2 işlemcili, 20 GB diskli ve sanalmakine1 isimli bir makine oluşturmak mümkün :

- New-VM -Name "sanalmakine1"
- Set-VMMemory -vm "sanalmakine1" -memory 1gb
- Set-VMCPUCount "sanalmakine1" 2
- Add-VMNewHardDisk -vm "sanalmakine1" -size 20gb -vhdpath "V:\VM\VirtualDisks\sanalmakine1.vhd"



NOT 1 : PSHyperV kütüphanesini indirip çalıştırmayı deneyince "File C:\hyperv\hyperv.ps1 cannot be loaded because the execution of scripts is disabled on this system." gibi bir hata mesajı görüntülenebilir.



Bu hata mesajı Internet'ten indirilen PowerShell script'lerinin çalışmasının güvenlik nedeniyle engellenmesiyle oluşmaktadır. Bu tür script'ler PowerShell konsolunda "Set-ExecutionPolicy Unrestricted" komutu girilerek çalıştırılabilir. Zararlı olabilecek, güvenilmeyen kaynaktan indirilen bir script'in çalışmaması için "Set-ExecutionPolicy Restricted" komutunu girilmelidir.

NOT 2 : Bu kütüphanenin daha geniş ve kapsamlı versiyonu System Center Virtual Machine Manager (SCVMM) ürünü içerisinde yer almaktadır. Hyper-V rolünü daha iyi yönetebilmek için ortaya çıkartılan SCVMM'deki kütüphane ile sanal makineler ile ilgili daha detaylı ayarlar yapılabilmektedir.

Open DBDiff : Açık kaynak SQL Server şema karşılaştırma aracı

CodePlex . SQL Server

Codeplex ile ilgili yazılarımıza bu sefer bir projenin tanıtımı ile devam ediyoruz. Bahsedeceğimiz projenin adı : Open DBDiff.

Open DBDiff; SQL Server 2005 ve 2008 ile çalışabilen, veritabanı içerisindeki tüm nesneleri (tablo, fonksiyon, trigger, index, kullanıcı vs.) karşılaştırabilen ve eşitleme için gerekli script'leri oluşturabilen, Codeplex'te açık kaynaklı olarak paylaşıma açılmış bir projedir. Proje .NET Framework 3.5 ve Visual Studio 2008 kullanılarak geliştiriliyor.

Open DBDiff'in kaynak kodu ve çalışma dosyalarına ve diğer tüm bilgilerine http://opendbiff.codeplex.com/ adresinden ulaşılabiliyor. Programı indirebilmek için sayfanın üst veya sağ kısmında yeralan Downloads linklerinden birine tıklamak gerekiyor. Görüntülenen sayfada karşımıza üç adet seçenek çıkıyor : Code, Setup ve Binaries. Adlarından da tahmin edilebileceği gibi Code başlıklı link bize projenin kaynak kodlarını sağlıyor. Setup ile projenin kurulabilir sürümüne, Binaries ile projenin kurulum yapılmadan çalışabilen sürümüne ulaşılıyor.



Open DBDiff, çalıştırıldığında kaynak ve hedef veritabanlarının bilgilerinin girilmesini bekliyor. Gerekli bilgiler girilip Compare tuşuna basıldığında iki veritabanı arasındaki farkları gösterip senkronize hale getirebilmek için gerekli script'leri oluşturuyor. Open DBDbiff'in karşılaştırabildiği nesneler şu şekilde :

- Tablolar
- Kolonlar
- Contsraint'ler (primary key, foreign key)
- Index'ler
- Tablo tipleri
- Kullanıcı veri tipleri
- Trigger'lar
- View'lar
- Stored procedure'ler
- Fonksiyonlar
- Veritabanı kullanıcıları
- Veritabanı rolleri

Bu nesnelerden hangilerinin karşılaştırılıp karşılaştırılmayacağına Options'a tıklayarak karar vermek mümkün. Karşılaştırılması istenmeyen nesneler varsa devre dışı bırakılabiliyor.



Kaynak ve hedef veritabanı bilgileri girilip Compare tuşuna basıldığında, Open DBDiff veritabanları üzerinde gerekli incelemeyi yapıp Schema bölümünde hedef veritabanı ile ilgili bilgileri görüntülüyor. Bu bölümde veritabanı nesneleri ve yanlarında bu nesnelerin adetleri görüntüleniyor. Her bir nesnenin yanındaki + işaretine basılarak ile nesne detaylarına ulaşılabiliyor. Nesne detaylarında yeni, farklı ve silinmiş nesneler sırasıyla yeşil, mavi ve kırmızı renklerde gösteriliyor. Her bir nesneye tıklandığında o nesne ile ilgili detaylara ve sağ tarafta oluşturulma script'ine ulaşılabiliyor.

 

Synchronized Script bölümünde senkronizasyonun sağlanması için gerekli olan scriptler görüntüleniyor. Bu scriptler Save As tuşu ile sql uzantılı script dosyası olarak kaydedilebildiği gibi, Copy Clipboard tuşu ile panoya kopyalanıp SQL Server Management Studio içerisine aktarılabiliyor.

 

Open DBDiff, yukarıda bahsettiğimiz nesnelerdeki farklılıkları gösterip ilgili script'leri de oluşturarak iki veritabanını eşitlemek için oldukça faydalı bir araç olarak görünüyor. Program için tek eksik olarak tablolardaki verilerin karşılaştırılamıyor olması görünüyor. Umarım ilerleyen versiyonlarda bu özellik de eklenir.
Yandex.Metrica