ASP.NET Yapılandırma ve Web.Config dosyası

Ana sayfa Forumlar PROGRAMLAMA ASP.NET ASP.NET Yapılandırma ve Web.Config dosyası

  • Bu konu 0 yanıt içerir, 1 izleyen vardır ve en son 12 yıl önce Anonim tarafından güncellenmiştir.
1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #12537
    Anonim
    Pasif

    ASPNET?in en güzel yanlarından biri güçlü yapılandırma sistemidir. Bu yapılandırma sistemi XML tabanlı dosyalar kullanır ve Web.Config adlı dosyada saklanır. Bir ASP.NET uygulamasına herhangi bir Web.config dosyası eklenmediğinde varsayılan olarak, Microsoft Framework ile gelen Machine.config dosyasından yapılandırmayı kalıtımla alır. Lakin bu hiçbir zaman yeterli değildir. Zaten Visual Studio.NET?de Visual Web 2005 de bizim için kendileri temel yapılandırmalara sahip birer Web.config dosyası oluşturuyor.

    Unutulmaması gereken bir konu da Machine.config dosyası sadece ASP.NET uygulamaları için değil; tüm makina için gerekli yapılandırma ayarlarını içerir. Bu yüzden yapılandırmaları Machine.config de değil Web.config?de yapmak en mantıklısıdır. Web.Config dosyasını kullanarak tüm uygulamamıza tek bir dosyadan ulaşıp uygulamamızın yapılandırmasını tamamen tekelimize alıp en üst düzeyde performans sağlayabiliriz. Örneğin; uygulamamızın farklı yerlerinde farklı Web.config dosyaları kullanarak farklı düzeyde güvenlik, hata yönetimi, derleme durumu, oturum yönetimi, şifreleme ve bir çok farklı yapılandırmaları kullanabiliriz. Bu da bize hatırı sayılır bir esneklik kazandıracaktır.

    Bir Web.config dosyası standart XML bildirimi ile ( bildirimini ve bu bildirimler içinde de etiketlerini barındırmak zorudandır. Aşağıda Visual Web Dewoloper 2005 beta ile birlikte Microsoft geliştiricilerinin hazırladığı örnek bir ASP.NET uygulaması olan StarterKit?in Web.config dosyasından bir kısım bulunmaktadır. Bu ayarları ve denetimleri örnek alarak incelemeye başlayalım.



    (admin dizinindeki albüm.aspx ile ilgili ayarlar)

    (hangi hesap yada rollerin kaynaklara ulaşabileceğini bildiren öğenin başlangıcı )
    ( burda admin grubundan herkesin girebileceği belirtiliyor.)
    (bu sayfaya giremeyecek grup “*” karakteri ile herkes(admin harici))



    (Hata sayfalarının yapılandırılması)
    (uygulama dili seçimi)
    (kimlik denetiminin yapılma stili belirtiliyor- burda forums denetimi seçilmiş )
    (kullanıcının login olmak için gideceği sayfa, kimlik doğrulama yöntemi ve süresini belirtiliyor.)




    Yukardaki Web.config dosyası tam ve eksiksiz değildir. Sadece şeklen ilk bakış olsun istedim. Şimdi yukarıdaki ve yukarıda geçmeyen diğer yapılandırmaları tek tek inceleyelim.

    ASP.NET Yapılandırma elemanları
    Yapılandırma öğeleri Camel case(deve biçimli) ve büyük/küçük harf duyarlıdır. Deve biçimli yapılandırma öğeleri; bir yapılandırmanın ilk kelimesini ilk harfi küçük; ikinci ve sonra gelen kelimelerin ilk harfleri büyüktür. localOnly gibi.

    Aşağıdaki anlatımda sözdizimlerinde kullanılabilecek tüm değerler verilmiştir örneğin; batch=”true|false” true yada false değerinden biri, enableSessionState=”true|false|ReadOnly” true, false veya ReadOnly seçeneklerinden biri kullanılabilir.

    1.
    öğesi ASP.NET HTTP motorunun çalışma zamanındaki çesitli özelliklerini denetler. Kullanımı ve söz dizimi;


    appRquestQueulLimit=”istek sayısı”
    executionTimeout=”saniye”
    maxRequestLength=”kbayt”
    minFireThreads=”bekletilecek en düşük iş parçası sayısı”
    ( başka öznitelikler de var ama sadece bir kısmı kullanıldı )

    appRquestQueulLimit: bir 503-Server Too Busy hatası vermeden önce ASP.NET in kuyruğa sokacağı istek sayısını belirler. Varsayılan değeri 100?dür.
    executionTimeout: Klasik ASP?deki Server.ScriptTimeout özelliğine benzer ve uzun süre bekleyen ve asılı kalan istekleri kapatılmadan önce yürütüleceği saniyeyi belirtir. Varsayılan değeri= 90 saniyedir.
    maxRequestLength: Kilobayt olarak gelen dosya yüklemelerinin en büyük boyutunu belirler.Bu özellik sunucunuza büyük dosya yükleyerek yapılan saldırılar için çok önemlidir. Bu öznitelik için varsayılan değeri ise 4,096 kbayt.
    minFireThreads: ASP.NET?in yeni istek işlemek için bekleleteceği
    en düşük is parçası sayısıdır. Varsayılan değeri 8?dir.

    2.
    ASP.NET?in en kampsamlı yapılandırma öğesidir. Bu yapılandırma genelde Web Servisleri ve diğer ASP.NET web uygulamalarının kodlarının derleme biçimlerinini içeren özniteliklerden oluşur. Kullanımı ve sözdizimi;




    batch: Uygulamanızın ASP.NET sayfalarının toplu halde derlemeyi destekleyip desteklemediğini belirtir. “true” değerini seçerseniz toplu derleme desteklenir. Varsayılan değer true. “false” değerini seçerseniz her sayfa çağırıldığında derlenir. Bu da pek iyi bir seçenek değildir.
    batchTimeout: Bu öznitelikle eğer toplu derlemeyi () true olarak seçtiyseniz toplu derlemenin zaman aşımından önce geçecek süreyi saniye olarak belirtir. Varsayılan değer 15 saniyedir.
    debug: ASP.NET sayfalarının ve Web Servislerinin derlenmiş montaja hata ayıklama bilgilerinin eklenip eklenmeyeceğini belirtir. Bu özelliğin her zaman “false” olması daha uygundur varsayılan olarakta “false” olarak belirlenmiştir. Çünkü hata ayıklama montajları büyüktürler ve bu bazı sorunlara neden olabilir.
    defaultLangue: Bu özelliğin varsayılan değeri VB.NET?dir. Bu derleme sırasında kullanılacak dili belirtir ki bu ve buna benzer bir çok yapılandırma otomatik olarak uygulamanıza eklenir. Örneğin Visual Studio ile bir C# Web uygulaması başlattığınızda Visual Studio sizin için oluşturacağı Web.config dosyasına belirtimini ekler.
    explicit: Bu denetim VB.NET için geçerlidir bu yüzden geçiyoruz.
    strict: Bu denetim de VB.NET için geçerlidir varsayılan ayarı false?dır.
    tempdirectory: Derlemeden kaynaklanan geçici ASP.NET dosyalarının adreslerinin belirtildiği özniteliktir. Geçerli herhangi bir dizin olabilir.
    compiler

    a. extension: Geri kod sayfası dediğimiz sayfasının uzantısının belirlendiği alandır (.vb, .cs, gibi) bu alan zaten bundan önce gelen langue denetimi ile özdeş olur Visual Studio ve/veya diğer yazılım geliştirme araçları bizim için bu ayarı da otomatik olarak yaparlar.
    b. compilerOptions: Derleme sırasında geçirelecek derlemeye özgü tüm seçenekleri içerir. Kullanılabilen bir seçenek belirlemeyi ya varsayılan ayar alarak Visual.Studio ya da kullandığınız uygulama geliştirme aracına brakın yada geçerli bir seçenek bulmak için SDK belgelerine bakabilirsiniz.
    c. type: default languae yada extension özniteliklerindeki uzantıyı kullanarak hangi sınıf ve/veya montajların kullanılacağını belirtir. Fakat bu nitelikle oynamamak en iyisidir zira zaten bizim için bu varsayılan şekliyle kabul edilir. Ayrıca bu varsayılan ayarların çoğu zaman yeterlidir.
    d. warningLevel: Bu nitelikde derleyici hatalari ile ilgilidir. Derleyicinin verdiği uyarı iletisi türlerini belirleyen düzey denetimidir. C# için varsayılan olarak “1” değeri belirlenmiştir. Herhangi bir degişiklik yapmak pek gerekmez.

    a.

    Bu özellik genellikle sayfa düzeyi özniteliklerine ait varsayılanlari ayarlamaya izin verir. Tüm ASP.NET sayfalarında (@ Page ASP.NET komutu bulunanlar hariç) geçerlidir. Bu öğenin kullanımı ve söz dizimi ise şöyledir:

    autoEventWireup=”true|false”
    buffer=”true|false”
    enableSessionState=”true|false|ReadOnly”
    enableViewState=”true|false”
    enableViewStateMac=”true|false”
    pageBaseType=”türadı, montaj”
    smartNavigation=”true|false”
    userControlBaseType=”türadı”/>

    autoEventWireup: Varsayılan ayarı true?dur. Page_Load ve benzeri sayfa olaylarının otomatik olarak desteklenip desteklenmeyeceğini belirleyeceğimiz özniteliktir. “false” seçilirse olay desteği sağlanmayacaktır.
    buffer: Bu özellikl çok önemlidir; önbelleğe alınıp allınmamaya dair ayarlar bu öznitelikten yapılır. ASP?deki Response.Buffer özelliğine benzer. Varsayılan değeri true olarak atanmıştır. Eğer “false” değerini seçersek sayfalar çağırıldıkça gönderilir. Bu yapılandırma, hız açısından çok önemlidir.
    enableSessionState: Geçerli kullanıcı için varsayılan ayar olarak bir ASP.NET sayfası tarafından yeni bir oturum acılıp açılmayacağına karar verir. Eğer bu niteliği “false” olarak ayarlarsanız kullanıcı önceki bir sayfadan zaten bir oturumu varsa, bu öznitelik o oturumu etkilemez. Diğer taraftan “ReadOnly” olarak ayarlanırsa sayfanın önceki ayarlarının değişmesi önlenir. Varsayılan değeri “true”?dır.
    enableViewState: ViewState? in (ASP.NET server controls sayfa istekleri durum depolama yöntemi) etkin olup olmayacağına karar verilen öz niteliktir. “true” seçilmesi durumunda ViewState etkindir. “false” da ise ViewState etkin değildir ve sunucu denetimi her istekte sıfırlanır.
    pageBaseType: Bu özniteliğin ASP.NET geri koddaki System.Web.UI isim alanını Page sınıfından alınmasını sağlamaktır.

    4.
    ASP.NET?te çok kullanılan bir diğer öğe de uygulamamızın hata durumlarında verdiği mesajlarını özelleştirmemize imkan veren
    özniteliğidir. Bununla ayrıca ASP.NET?in ürettiği ham hataları da yönetebilirsiniz. Yukarıda StarterKit?in Web.config dosyasındaki kullanımı da bakabilirsiniz şeklinde kullanılmıştır şimdi daha detaylı olarak bakalım Söz dizimi ve kullanımı;

    defaultRedirect: Bir hata olduğunda kullanıcının yönlendirileceği sayfayı belirlediğimiz kısım burasıdır.
    mode=”on|off|RemoteOnly”: Bu öğe ham ASP.NET hatalarının kullanıcıya gönderilip gönderilmeyeceğine karar verir.
    burda görüldüğü gibi Starter Kit yapımcıları bunun olmasını istememiş ve “Off” olarak belirtmişler. Böylece oluşan her hatada ASP.NET in kendi hata sayfaları görükecektir. Yalnız bu değeri seçmek pek mantıklı değildir. Zira kullanıcılar sizin istemediğiniz bir cok bilgiyi görebilir, bu yüzden tavsiye edilmez. Eğer bu değer ?On? olarak belirtilseydi özel hatalar etkin olacaktı ve kullanıcı ” ne yollanacakdı yada daha iç bir öge olan ?a yönlendirilecekti. Bir diğer değer olan “RemoteOnly” seçildiginde ise; özel (ham) hatalar yerel sunucu daki kullanıcıya gözükecek ama uzak istem yapan(local olmayan) kullanıcıyı ise sadece uzak istemciler için geçerli olan bir hata sayfasına yönlendirecektir. Yani RemoteOnly seçili olduğunda ham hataları sadece geliştirici görebilir.
    un ilk öğesi olan te kullanılabilir. Böylelikle bütün hatalar teki URL?ye yönlendirilir.

    5.
    Bu öge ASP.NET te uygulamanın genelleşmesi ayarlarını denetler. Yukarıdaki örnekte de StarterKit?in Global ayarları için kullanıldığını görebilirsiniz. Bu, istek,yanıt ve dosyalar için kullanılan kodlamanın yani sıra web uygulamanızdaki yerel kültürel(dil vb.) ayarları da içerir.
    öğesinin söz dizimi aşağıdaki gibidir;

    requestEnconding: karakter kodlaması(gelen istek) için kullanılır yukarıdaki uygulamada “utf-8″ olarak bildirildiğine dikkat edin. Bu özniteliği ayarlamaz iseniz varsayılan olarak”utf-8” kabul edilecektir.
    responselEncondig: karakter kodlaması(giden istek) için kullanılır yukarıdaki uygulamada “utf-8” olarak bildirildiğine dikkat edin. Bu özniteliğide ayarlamaz iseniz varsayılan olarak “utf-8″i kabuledecektir.
    uiCulture: Bu özellik yerel kültüre özgü ayarlamalar için kullanılır, Bu tür yerel dizeler için System.Globalization.CultureInfo sınıfından yararlanabilirsiniz.

    Bu makalemizde ASP.NET uygulamamızın ayarlarını yapmak için varolan Web.Config isimli dosyada bulunabilecek bazı ayarları inceledik.

    Makale:
    ASP.NET Yapılandırma ve Web.Config ASP.NET Hüseyin Dönmez

1 yazı görüntüleniyor (toplam 1)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Bana Ders Anlat © 2008-2022