|  | 
        
            | 
                    
                        | ASP.NET Yapılandırma ve Web.Config |  |  
                        | 
	
    
		
            | Gönderiliyor lütfen bekleyin... | 
 |  | 
        
            | 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 (<?xml 
  version...) başlar fakat bu olmadan da çalısabilir. Ama Web.config dosyası mutlaka 
  <configuration> bildirimini ve bu bildirimler içinde de <system.web> 
  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.
 
 
 
  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. 
    | <?xml 
      version="1.0"?> <configuration>
 <location path="Admin/Albums.aspx"> 
      (admin dizinindeki albüm.aspx ile ilgili ayarlar)
 <system.web>
 <authorization> (hangi hesap yada rollerin 
      kaynaklara ulaşabileceğini bildiren öğenin başlangıcı )
 <allow roles="Administrators" /> 
      ( burda admin grubundan herkesin girebileceği belirtiliyor.)
 <deny users="*"/> (bu 
      sayfaya giremeyecek grup "*" karakteri ile herkes(admin harici))
 </authorization>
 </system.web>
 </location>
 
 <system.web>
 <customErrors mode="Off"></customErrors> 
      (Hata sayfalarının yapılandırılması)
 <compilation defaultLanguage="C#"/> 
      (uygulama dili seçimi)
 <authentication mode="Forms"> 
      (kimlik denetiminin yapılma stili belirtiliyor- burda 
      forums denetimi seçilmiş )
 <forms name=".ASPXAUTH" 
      loginUrl="Default.aspx" protection="Validation" timeout="300"/>
 (kullanıcının 
      login olmak için gideceği sayfa, kimlik doğrulama yöntemi ve süresini belirtiliyor.)
 </authentication>
 <globalization requestEncoding="utf-8" 
      responseEncoding="utf-8"/>
 <roleManager enabled="true">
 </system.web>
 
 </configuration>
 |  
 
 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. <httpRuntime><httpRuntime> 
  öğesi ASP.NET HTTP motorunun çalışma zamanındaki çesitli özelliklerini denetler. 
  Kullanımı ve söz dizimi;
 
 
  ( başka öznitelikler de var ama sadece bir kısmı kullanıldı 
  ) 
    | <httpRuntime> appRquestQueulLimit="istek sayısı"
 executionTimeout="saniye"
 maxRequestLength="kbayt"
 minFireThreads="bekletilecek 
      en düşük iş parçası sayısı"
 |  
 
 
   
    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ğien düşük is parçası sayısıdır. Varsayılan değeri 8’dir.
 2. <Compliation>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;
 
 
   
    | <Compliation batch="true|false"
 batchTimeout="saniye"
 debug="true|false"
 defaultLangue="Kullanılan 
      uygulama dili"
 explicit="true|false"
 maxBatchSize="Sayfa sayısı"
 maxBatchGeneratedFileSize="kbayt"
 numRecompilesBeforeAppRestart="sayı"
 strict="true|false"
 tempdirectory="dizin">
 
 <compiler
 extension="dosya 
      uzantıları"
 compilerOptions="derleyici 
      ayarları"
 type=".NET 
      türü"
 warningLevel="sayı"
 </compiler>
 
 <assemblies>
 <add 
      assembly="montaj adı"/>
 <remove 
      assembly="montaj adı"/>
 </assemblies>
 
 </Compliation>
 |  
  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. 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 (<batch>) 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 <compilation defaultLanguage="C#"/> 
    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 
     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. 
  <add 
  assembly: Bir montajı derleme sırasında 
  başvurulmak üzere adına göre belirler. Önbellekteki tüm geçerli montajları almak 
  için"*" karakteri kullanilabilir.
 b. 
  <remove 
  assembly: Derleme sırasında kullanımdan 
  kaldırılmak istenen montajların belirtilmesi için varolan yapılandırmadır. Bir 
  üst de eklenen (add assembly ile) montajlar silinebilir. BU öznitelikte de "*" 
  karakteri kullanılarak bütün montajlar silinebilir fakat bu add assembly’deki 
  kadar sağlıklı değildir.
 
 
 3. <pages>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:
 
 
 
   
    | <pages> 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ı"/>
 <pages>
 
 
 |  
  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. <customErrors>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 <customErrors> 
  ö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 <customErrors 
  mode="Off"></customErrors> şeklinde kullanılmıştır şimdi 
  daha detaylı olarak bakalım Söz dizimi ve kullanımı;
 
 
   
    | <customErrors defaultRedirect="gecerli bir url"
 mode="on|off|RemoteOnly"
 <error
 redirect="gecrli url"
 statusCode="hata durumlarinda 
        kullanacagimiz kod"/>
 </customErrors>
 
 
 |  
  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. <customErrors 
    mode="Off"></customErrors> 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ı <defaultRedirect="hata 
    URL si>" ne yollanacakdı yada daha iç bir öge olan <error>’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.
 
<error: 
    Bu alt etiket daha fazla hata denetimi sağlar hatanın HTTP durum kodlarına 
    dayanarak "statusCode"(404-Not found vs.) de belirttiginz kodu kullanır 
    ve koddakine uygun bir hata olursa "redirect" te bildirdiğiniz URL 
    ye gider.Bu alt etiket olmadan da sadece <customErrors> un ilk öğesi 
    olan <defaultRedirect> te kullanılabilir. Böylelikle bütün hatalar <defaultRedirect> 
    teki URL’ye yönlendirilir.  5. <globalization> 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. <globalization> 
  öğesinin söz dizimi aşağıdaki gibidir;
 
 
   
    | <globalization culture="herhangi gecerli kültür bildirim dizesi"
 fileEncondig="herhengi 
        bir gecerli kodlama dizesi"
 requestEnconding="herhengi 
        bir gecerli kodlama dizesi"
 responseEncondig="herhengi 
        bir gecerli kodlama dizesi"
 uiCulture="gecerli(yerel 
        kültür) dize bildirimi"/>
 
 
 |  
  Bu makalemizde 
  ASP.NET uygulamamızın ayarlarını yapmak için varolan Web.Config isimli dosyada 
  bulunabilecek bazı ayarları inceledik. 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. 
 
 
                Makale:ASP.NET Yapılandırma ve Web.Config  ASP.NET Hüseyin  Dönmez
 | 
        
            |  | 
        
            |  | 
        
            | 
                    
                        
                            
                        
                            Eklenen Son 10 
                            Bu Konuda Geçmiş 10 
                        
                            Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
                         
                            Son Eklenen 10 Makale Yükleniyor
                         
                            Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
                         | 
        
            |  |