Friday, January 20, 2012

IIS 7.5 Architecture Insights

Recently I started migration of applications from win 2003 OS platform to Win 2008. With this I decided to move to .net 4.0 and of course the IIS 7.5 What really surprise me the changes that has evolved in these technology, platform and environment in totally. The IIS and .net has matured lot and becoming stronger in each version releases Microsoft does.

IIS 6.0 vs 7.5 Architecture Insight
IIS6.0 -Web service Extension:We used to have web Server Extension. In IIS 6.0 is enabled only to support client static content and in order to enabled server side aspx, asp,.asmx, .svc, webdav, front page server extensions etc we have to make use of Web server Extension options in IIS( Inetmgr).
ALLOW and Prohibit Options Available.

IIS 7.5 -ISAPI & CGI this is exist in server extension in win server 2008 R2 or in Program On and Off feature in Control Panel. Once they are enabled it is available in IIS root.

IIS7.5 Integrated & Classic (6.0) mode of operatability.

IIS6.0- IIS and ASP.net has its own authorization/authentication model.
IIS7.5 Integrated Mode combines IIS & ASP.net Authentication/Authorization
IIS 6.0 Architecture
Architecture
Lsass.exe: Security and SSL
Inetinfo.exe: hosts the non-HTTP services and the IIS Admin Service, including the Metabase.E.g SMTP, FTP
SvcHost.exe: host operating system services; in the case of IIS, it hosts the Web (HTTP) service. www services, asmx, WAS – Window activation services for WCF binding –TCP and MSMQ

It has W3SVC.exe is user mode component that bridge communication between user mode and kernel mode. http listener handles request for kernel http stack through http.sys protocol stack
W3wp.exe: multiple W3wp.exe processes, one for each application pool.
ASPnet_ISAPI.dll
ISAPI Filter
ISAPI Extension
APP Domain
In Web-garden one application is divided into separate processes, -multiple instances of the same worker process.

IIS 7.5 Architecture
Additional Listener Adapter
Listener Adapter
World Wide Web Publishing Service (hosting the listener adapter)
NET.TCP listener adapter
NET.PIPE listener adapter
NET.MSMQ listener adapter

Protocol-specific listener adapters support all four WCF transports, instead of only HTTP in IIS 6.0. In addition, a new operating system service is available called Windows Activation Services (WAS). Both W3svc.exe and WAS are running inside an operating system host called SvcHost.exe
WAS is the new process activation service that is a generalization of Internet Information Services (IIS) features that work with non-HTTP transport protocols. WCF uses the listener adapter interface to communicate activation requests that are received over the non-HTTP protocols supported by WCF, such as TCP, named pipes, and Message Queuing.
WAS activation is not supported if the web server’s request processing pipeline is set to Classic mode. The web server’s request processing pipeline must be set to Integrated mode if WAS activation is to be used.
References
http://blogs.iis.net/nitashav/archive/2010/02/05/iis6-0-ui-vs-iis-7-x-ui-series-more-about-web-service-extensions.aspx
http://blog.monitis.com/index.php/2011/06/13/top-8-application-based-iis-server-performance-tips/
http://blog.monitis.com/index.php/2011/06/30/top-5-feature-based-iis-server-performance-tips/
http://blog.monitis.com/index.php/2011/06/26/iis-server-performance-tips/
http://learn.iis.net/page.aspx/38/planning-your-iis-architecture/
http://www.iis.net/ConfigReference/system.webServer/security/isapiCgiRestriction
http://msdn.microsoft.com/en-us/library/bb332338.aspx
http://learn.iis.net/page.aspx/101/introduction-to-iis-architecture/