x64 üstünde ASP.Net 1.1 ile Geliştirmenin "bit" noktası

Bir süredir Windows 2003 64 bit sürümünü kullanıyorum. Bazı hassasiyetleri olmasa daha da iyi olacak ama sağlamlık ve performansı çok çok iyi. Önceden düşük ramler ile (1-2 gb) kullanırken de iyiydi, şimdi 4 GB ile banamısın demiyor. Tek zorlayan 3 GB veri dosyası boyutu ile Outlook.

Firma olarak geliştirdiğimiz bazı projelerimiz ASP.Net 1.1 üzerinde devam ediyor, ekserisi ise 2.x deler.  1.1 ile devam edenler genelde halen çalışan ve bakım gerektiğinde bakımı yapılan işler.

Bugünlerde bir müşterimizin isteği üzerine eski bir projeyi açmam gerekti ama bir türlü muvaffak olamadım.  Hemen her seferinde  açmak istediğiniz web projesi ile açtığınız path aynı dizini göstermiyor gibi bir hata veriyordu.

Visual Studio 2003 ile açmayı denedim olmadı Fiddler ile takip ettim vs vs. Şu linkteki arkadaşın yaptıklarına benzer şeyler yaptım (makinayı restart etmedim ama :) . Olmadı en son Google'a sordum, ilk sormamda 2. sıradan el sallayan bu linkte cevabı buldum.

Bu sorunun tanımında "bitness" diye bir ifade geçiyor, bitlerin uyumuna gönderme yapıyorlar, kısaca:
"64 bit Windows'a ait IIS sadece 64 bit dll leri yükleyebiliyor, 32 bit ile çalışan da sadece 32leri. .Net 1.1 dlleri ise 32bit olduğu için 64bit Windows üzerindeki IIS bunları yükleyemiyor ve ortadan ikiye çatlıyormuş." En kısa tanımı bu. Daha detaylar için bkz. Link1 ve link 2

Çözüm oldukça basit, çoğu zaman bize yardım eden adsutil burada da imdadımıza yetişiyor. Komut satırına inin (start>run>cmd) ve

CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Yazın, hemen karşılık verecek ve  Enable32bitAppOnWin64     TRUE   yazacaktır.

IIS'i restart edin (start>run>iisreset) ve projenizi yeniden açmayı deneyin.

Bu mudur? Budur...

YORUMLAR (5)
1 Atakan E. 28.05.2008 18:28:58
Şu şekilde yapabiliyor olmanız lazım

"CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/AppPools/ApplicationPoolAdi/Enable32bitAppOnWin64 1"

ApplicationPoolAdi yazan yere sizin uygulamanizin calistigi app pool adini yazmaniz gerekiyor. Ornegin KendimeNotlarAppPool gibi.
2 Atakan E. 28.05.2008 16:54:38
Merhaba Serap Hanım

Araştırmadım ama uygulamanızı farklı bir Application Pool'a alıp, sadece o App Pool üstünde Enable32bitAppOnWin64 = 1 olacak şekilde ayar yapmayı deneyebilirsiniz.

Olabilir de olmayabilir de.

Tüm sunucuda 32 bitleri aktif etmenizde ne gibi bir sakınca var ?

3 serap bircan 27.05.2008 16:25:38
Çok yardımcı oldu, teşekkürler.
Yine de bir sorum olacak:
"CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1"

Bu kod IIS teki bütün projeler için çalışacaktır. Tek bir uygulama için bu sorunu nasıl çözeriz? Bir bilginiz var mı?
4 Atakan E 11.05.2008 13:15:11
:)

Açıklama olarak ekleyecektim ama buradan yazayım halen problem yaşıyorum ama ilk sorun olan Service Unavailable kısmını atlatmış olduk.
5 HASAN ÖZCAN 09.05.2008 15:20:34
Çok yardımcı oldu, teşekkürler. +rep :)
YORUM YAPIN

Konular

Aklımda Kalanlar

Başımdan Geçenler

Sevdiğim Yazılar

Isa'ya

Kendime Notlar

Vizör

Kitaplardan

Diğer Yazılar

Son Yorumlar

Yazarlar

Linkler

Blog Arşivi