This post is also available in English
Bir süredir evde kullanmaya başladığım Windows 7'den oldukça memnun sayılırım. Hatta kısa sürede özellikle performansından dolayı fanatiği oldum diyebilirim.
Diyebilirdim yada. Bugün IIS üzerinde bir websitesini çalıştırmak tam 1 saat 40 dakikamı alana kadar.
Acısız olmasını beklemiyordum ama bu kadar kanlı olmasını da beklemiyordum açıkçası. Her zaman yaptığımız gibi sitemi oluşturdum, hemen görmek istedim boş sayfayı. IIS'i açtığımda IIS 7.5'un jelibon-bonbon yüzünü görünce işlerin iyi gitmeyeceği içime doğmuştu zaten. Neyse, websitesi tanımlamasını yaptım. Tarayıcıya yöneldim ve ilk hata:
HATA 1: HTTP Error 500.19 / Error Code: 0x80070005 / Config Error: Cannot read configuration file due to insufficient permissions

Araştırma süreci başladı tabi ki. Sorunun yetki hatası olduğu belliydi. Web projesinin dizinine IIS_IUSRS kullanıcısına yetki verdim. Tarayıcıda sayfayı refresh ettim ve ikinci hata:
HATA 2: HTTP Error 500.19 / Error Code: 0x80070021 / Config Error: This configuration section cannot be used at this path. This happens when the section is locked at parent level....

En fazla bilgi öğreten hata bu oldu. Her ne kadar öğrendiklerim hata ile ilgili olmasa da... Araştırmalar sonucunda kolay bir çözümü olduğunu öğrendim.
%windir%\system32\inetsrv\config\applicationhost.config konumundaki dosyayı açıp, içerisindeki
<section name="handlers" overrideModeDefault="Deny" />
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
satırlarındaki "Deny" ibarelerini "Allow" yapmak. Bu sayede bu section'ların web.config üzerinden override edilmesine izin vermek.
İşlem kolay, kolay olmasına da dosyayı bulabilirsen... Hemen Total Commander'ıma geçtim, dizine gittim, o da ne, dizin boş? Ara tara boş. Hemen cmd'ye geçtim. Dizine gittim yok da yok.
En sonunda bir forumda "SYSWOW32 Redirection" denen bir zımbırtıyı öğrendim. 64Bit işletim sistemlerinde, sistem dizini iki adet. Bir System32 bir de SysWOW64. Ancak bütün yazılımlar sistem dizinine aynı şekilde erişmek isteyeceği için, Microsoft, 32 Bit'lik yazılımlar sistem dizinlerine erişirken "SYSWOW32 Redirection" ile onları 32Bit dizinine atıyor. Yani dizine gözatmak için kullandığınız yazılım (bende Total Commander ve cmd) 32 bit ise, dizinde hiçbirşey olmuyor, çünkü o dizin o dizin olmuyor.
Bunu da öğrendikten sonra 64Bit'lik Notepad ile tam dosya adresi vererek dosyayı açmaya muktedir oldum ve değişiklikleri yaptım. Tarayıcıya döndüm, refresh veee buyrun 3. hata:
HATA 3: HTTP Error 401.3 / Error Code: 0x80070005 / Unauthorized
Uzun araştırmalardan sonra, sorunun IIS7.5 üzerindeki site yetkilendirmesindeki bir sorun olduğunu tespit edebildim. Düzeltmek için şu adımları izlemek gerekiyor:
1. IIS7.5'a girilir,
2. "Sites" dalı genişletilir, sorunlu web sitesinin adına tıklanır.
3. Sağ taraftan "Authentication"a çift tıklanır.
4. "Anonymous Authentication" öğesine sağ tıklanır "Edit..." denir.
5. "Application Pool Identity" seçenği işaretlenir
6. Kaydedilir.
Adımları tamamladım, büyük bir hevesle "bu sefer tamam" diyerek tarayıcıya döndüm F5 veeee 4.hata:
HATA 4: HTTP Error 404.3 / Error Code: 0x80070032 / Not Found
Hata mesajından ASP.NET handler'ının çalışmadığını düşündüm ama, jelibon-bonbon IIS7.5'da nasıl bulasın da düzeltesin handlerları. Bu sefer onu aramaya başladım. Handlerların yerini tespit ettim ama ASP.NET handler'larının yerinde yeller esiyordu. Meğerse Windows 7, Framework kurulsa dahi, ayrı ASP.NET bileşenlerini aktive etmeyi gerektiriyor. Bunun için denetim masasından "Programs and Features" altından "Turn Windows Features on or off" diyoruz ve çıkan ağaçta şu dala kadar gidiyoruz: "Internet Information Services/World Wide Web Services/Application Development Features". Buradaki öğelerden, "CGI" hariç diğerlerini işaretliyoruz.
Bu işelmi de tamamladım tarayıcıda refresh, yine bir hata. Ama bu sefer ne güzel ki artık sarı ASP.NET hata sayfası görebilmeye başlamıştım. Anlamsız bir hataydı ama bir compile edeyim projeyi tekrar dedim. Netekim düzeldi ve boş, düz beyaz Default.aspx sayfamı görmeyi başardım...
Yukarıda anlattığım sorunlar, orası burası kurcalanmış yada uzun süredir kullanılarak sorunlara yol açılmış bir Windows kurulumnda değil, 3-4 gün önce yeni işletim sistemi ve 1 gün önce de yeni Visual Studio 2008 kurulumu ile tam manasıyla bir out-of-the-box sistem üzerinde meydana geldi.
Umarım bu sorunları yaşayan birilerin biraz faydam dokunur...