Windows sunucularda 404 yapısını kullanmak ve bunun haricinde kontrol panellerinden ulaşamadığınız bir takım ayarları yapmak için web.config dosyası kullanırız.
Hemen hemen her ASP ve ASP.NET uygulaması WEB Config dosyasını barındırır. Web.config dosyası aslında bir XML dosyasıdır ve içinde çeşitli yapılandırma ayarlarını barındırır. Örneğin bir web uygulamasının debaug modda çalışabilmesi için ayarları değiştirebilme gibi bir özelliği web.config compilation ayarları kısmındanm debug=true diyerek ayarlayabiliriz. Bunun gibi ayarların dışında web.config dosyası bir takım özel bilgilerde saklayabilir.
Yıllarca geliştirme yaptığım sistemlerde deneme yanılma yöntemi ile kendime bir takım kütüphaneler ve bilgi havuzları oluşturdum. Blogumda ise bunları sizlerle paylaşıyorum. Çünkü 10 yılı aşkın süredir bende gizli kalan bu kütüphanenin artık ihtiyaç duyan herkese ulaşmasını istiyorum. İşte benim en performanslı web.config ayarlarım aşağıdaki gibidir.
İçerisinde 404 yapısı ile ilgili ayarlar, access-control ayarları, browser cache leverage için cache ayarları, gzip için sıkıştırma ayarları gibi bir çok parametre bulunmaktadır.
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.web> <sessionState mode="InProc" timeout ="60" cookieless="false"></sessionState> </system.web> <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> <httpErrors errorMode="DetailedLocalOnly"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="/404.asp" responseMode="ExecuteURL" /> </httpErrors> <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypeas> </httpCompression> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="8.00:00:00" /> </staticContent> <caching> <profiles> <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> </profiles> </caching> <urlCompression doDynamicCompression="true" /> </system.webServer> </configuration>