This article provides a few tips to ensure your deployed ASP.Net always runs with the best possible performance and no security information leakages.
1. Machine.config
In Machine.config introduce the following (if not already there).
Machine.config:
<system.net>
<connectionManagement>
<add address="*" maxconnection="100" />
</connectionManagement>
</system.net>
<processModel autoConfig="true"/>
To:
<processModel autoConfig="false"
maxIoThreads="100"
minWorkerThreads="40"
maxWorkerThreads="40"
minIoThreads="30" />
//-- The above would be specific to your Web Server's Configuration. This was suitable for my requirements.
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineOnly"/>
To: In Red
<section name="deployment" type="System.Web.Configuration.DeploymentSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication"/>
2. Web.config
In the Web.config do the following:
A) Under <system.web> key Introduce :
<deployment retail="true"/>
This can be done only after allowDefinition="MachineOnly" inside the "Deployment" key has been set in the Machine.config (see the above).
B) Modify:
debug =false
in other words:
<compilation debug="false" strict="false" explicit="true">
2) Cache expiration-HTTP Headers
In IIS: Select your website, right-click any static folder inside your website, as in the example images. Do the following:
Select "HTTP Headers"
Enable content expiration
Set A Value for "Expire after " say 10 (in days)
Do this for all the static folders, in other words whose content does not change very frequently .
3) GZIP-enable
Lastly is GZIP Compression, that can shrink a site's pages by 70% to 90%. The advantages are:
- Reduced bandwidth
- Faster page loads for your visitors.
Follow this procedure to enable GZIP:
- Edit on Metabase.xml while the server is active. Its location is: "C:\WINDOWS\system32\inetsrv"
- Find the "<IIsCompressionSchema />" section and add the file types that are in your system. For mine it was js, dll, aspx, html, CSS, exe and axd. This will look something as in the following:
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe
aspx
js
css
axd"
>
</IIsCompressionScheme>
Please note that attribute above HcOnDemandCompLevel; this is the Compression level that is set as 10.
Finally, restart IIS.