I have read a nice book called "
Professional IIS 8" and these some of the tips I found them useful to posted here and sometimes these tips will help the SharePoint Administrator or Developer.
Note: Some of these tips apply to previous version of IIS ( 6 , 7 or 7.5).
- You can use appcmd or power shell as command utilities for automation or using managed code like C#.
- SSL Certificate no longer need to bound to an IP address. SNI allows an IIS 8 to host multiple SSL sites and certificates on a single IP address.
http://windowsworld.in/?p=555
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability
- IISLogs external tool whcih help you to mange the logs on schedule basis.
http://www.iislogs.com/
- IIS can host different application like Asp , Asp.net and PHP.
http://www.iis.net/learn/application-frameworks/install-and-configure-php-applications-on-iis/using-fastcgi-to-host-php-applications-on-iis
- You can install IIS 8 Express on windows 7 for development purpose with Visual Studio 2012 (no IIS Manager ).
- Microsoft Web Capacity Analysis tool (WCAT) to test a load on web servers.
http://support.microsoft.com/kb/231282
http://www.galcho.com/articles/StressTestingWCAT.aspx
- IIS 8's Request Tracing utility can be used for testing performance and diagnostic the errors.
http://www.trainsignal.com/blog/iis-7-troubleshooting

- MaxConcurrentRequestsPerCpu setting can enhance or optimze the performance
http://blogs.x2line.com/al/archive/2010/01/04/3718.aspx
http://blogs.msdn.com/b/rakkimk/archive/2009/07/08/iis7-improving-asp-net-performance-concurrent-requests-while-on-integrated-mode.aspx?Redirected=true
- By default IIS 8 installed with Asp.net 4.5 and you can install and run .Net 3.5.
- You can upgrade from IIS 7 to II 8 and same sites with same configuration can run.
- You can manage IIS 8 remotely over HTTPS using Web Management Service (WMSVC).
http://www.tech-stew.com/post/2012/10/08/How-to-install-IIS-remote-manager-in-Windows-8.aspx
http://technet.microsoft.com/en-us/library/jj635856.aspx
http://www.iis.net/learn/manage/remote-administration/remote-administration-for-iis-manager
- Local Administrators can manage IIS but by using Delegation feature you can allow none administrators to manage websites or applications.
- You can extend IIS Manager using managed code or native code.
- You can set configuration at sub folder or file level using Location tag in configuration file
http://blogs.iis.net/bills/archive/2008/03/24/how-to-enable-directory-browsing-with-iis7-web-config.aspx
- IIS 8 support different types of logs like IIS , W3C (widely used) and NCSA and you need a tool to parse them like logparser (you need to consider the time zone and reverse proxy infrastructure).
http://www.microsoft.com/en-us/download/details.aspx?id=24659
http://logparserplus.com/Examples
- It's recommended to enable compression to save bandwidth usage
- If MIME type is not defined then the browser will return 404.3 error.
- To stop IIS run the following command : net stop iisadmin /y or stop these services (World wide web publishing , SMTP and FTP publishing).
- Application initialization module (in IIS 7.5 called application warm up) to prime the application before receiving HTTP requests from the end users.
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization
http://sharepoint.nauplius.net/2012/06/sharepoint-warm-up-scripts-a-thing-of-the-past/
http://sharepointgeorge.com/2010/warm-sharepoint-web-applications-windows-2008-r2-iis-75-application-warmup-module/
- Recycle process does not immediately stop the w3wp process , instead it create new process and then move the requests there.
- Web Gardens is an application pool that is serviced by more than one worker process simultaneously (Created on Demand). It's useful in situations where :
- High number of concurrent connections.
- No application Session state.
- Not be CPU -intensive.
http://geekswithblogs.net/vkamat/archive/2004/11/17/15145.aspx
- Classic mode pipeline for compatibility.
- In IIS 8 you can view the running w3wp process in IIS Manager and running page requests ( good to check the slow running page).
http://www.codeproject.com/Articles/125113/How-to-use-IIS-Manager-to-get-Worker-Processes-w3w
http://programming4.us/website/6646.aspx

- Application pool use configuration isolation concept by stored temprorary files from the global configuration (needed settings) in this folder (\inetpub\temp\appPools).
- You can change bitness mode to 32 or 64 bit at application pool level.
- You can configure SSL with FTP in IIS 8 (FTPS) and you can use host headers.
- You can apply filtering to FTP by File extension or restricted domain or IPs.
- You can use .Net Accounts with FTP.
- IIS 7 and above ship with more than 40 modules and you can create your custom module.
- Windows Process Activation Service (WAS) will respond to requests other than HTTP such as TCP and MSMQ. (One of the feature of WCF).
- Dynamic IP Restrictions to block malicious web requests designed to infiltrate your web server and you can show access denied page or page not found.
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-dynamic-ip-address-restrictions
- Placing servers in DMZ or internally or even at hosting company based on two factors : first the function of the server and second who needs access.
- To enable or disable session state for Asp.net go to Pages and Controls section under Asp.net in IIS.
- You can load only the required modules and this will increase the server and site performance
- At web server level , you need to modify applicationhost.config file so for example to render only static Html page
<modules>
<add name="DefaultDocumentModule" />
<add name="StaticFileModule" />
<add name="AnonymousAuthenticationModule" />
</modules>
- At web site level , you need to modify the web.config file
- Using IP and Domain Restrictions allows you to selectively permit or deny access to the web server , web sites , folders and files.
http://www.dotnetexpertguide.com/2012/03/iis-8-dynamic-ip-domain-restriction.html
- Request Filtering provides a configurable set of rules that enables you to determine which types of request should be allowed or rejected (URLscan module).
http://technet.microsoft.com/en-us/library/hh831621.aspx
http://www.iis.net/configreference/system.webserver/security/requestfiltering
http://www.hosting.com/support/iis7/enabling-the-request-filtering-ui-
- URL authorization is a feature that can be used to permit or deny access to resources by rules in data sources like (databases or XML).
http://www.iis.net/learn/manage/configuring-security/understanding-iis-url-authorization
- Backup and Restore IIS settings and configurations
http://sharepointadam.com/2010/04/01/backup-iis-configuration-settings-via-powershell/
http://social.technet.microsoft.com/wiki/contents/articles/10526.sharepoint-2010-backup-and-restore-iis-web-server-configuration-through-powershell-en-us.aspx
http://thuansoldier.net/?p=1607
- URL Rewrite module can
- Redirect URL
- Rewrite URL
- Set custom HTTP Response
- Abort Request
- None
http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module
http://weblogs.asp.net/owscott/archive/2010/01/26/iis-url-rewrite-hosting-multiple-domains-under-one-site.aspx
http://www.techrepublic.com/blog/webmaster/url-rewriting-with-iiss-url-rewrite-module/710
- Application Request Routing (ARR) (IIS like Load Balance).
http://www.iis.net/downloads/microsoft/application-request-routing
http://improve.dk/archive/2010/06/16/setting-up-multiple-iis-application-request-routing-farms-on-the-same-server.aspx
- Monitoring tools
- Server Manager in Windows Server 2012
- Task Manager
- Windows Performance Monitor
- Resource Monitor
- Resource and Performance Monitor
- What to Monitor ?
- Memory Usage
- Process Utilization
- Disk I/O
- Network Bandwidth
- Web Service Counters
- Asp.Net Counters
- Logs (IIS Logs , Event Viewer logs and application logs)
- Website Optimizations
- HTTP keep-Alive
- Content Expiration
- Bandwidth throttling
- Output Caching
- HTTP compression
- Website connections
- WFetch is a tool which listen to all web traffic and see everything included in the communication between IIS and web client including request , response ,headers ,body,...
http://support.microsoft.com/kb/284285
- Web Socket
http://alexjmackey.wordpress.com/2012/05/01/websockets-with-asp-net-4-5-and-visual-studio-11/
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support