Building Value
Proge-Software Srl
www.progesoftware.it
info@progesoftware.it
Maggio 2012
BUILDING VALUE
Version 7 - 7.5
copyright Proge-Software 2011 all rights reserved
Audience
Course Prerequisites
Course Objectives
Course Program
Day 1:
Introduction
Module 1: Introduction and IIS Architecture
Module 2: Installing IIS
Module 3: IIS Administration Overview
Module 4: Web Sites and Virtual Directories
Day 2:
Introduction to IIS
Type
Notes
1.0
Windows NT 3.51
Add-On
2.0
Windows NT 4.0
Native
3.0
Native
4.0
Windows NT 4.0
Add-On
5.0
Native
6.0
Native
7.0
Native
7.5
Native
Current release
Version
IIS Architecture
Modular Design
Server Core
No unnecessary overhead
Designed for remote
administration
model
Unified Pipeline
Configuration cache
IIS Components
Web Server / Application Server
FTP Server / SMTP Server (no longer parts of IIS)
Management Tools
Web Sites
Virtual Directories
Web Applications
Application Pools
Modules
ISAPI Filters
Configuration Store (no more Metabase)
Static Content
(default)
ASP.NET
Features
Static
Content
Default
Document
Directory
Browsing
HTTP Errors
ASP.NET
.NET
Extensibility
Classic ASP
ASP
CGI
Full Install
All features
HTTP Logging
Logging Tools
Request
Monitor
Request
Filtering
Static Content
Compression
IIS
Management
Console
ISAPI
ISAPI
Extensions
ISAPI
Extensions
Workload
Authentication
Basic
Anon
CGI
Determin
e
Handler
Static
File
ASP.NET
ISAPI
PHP
Send Response
Log
Compress
NTLM
Authorization
ResolveCache
Determine Handler
UpdateCache
Send Response
Basic
Anon
CGI
Static
File
ISAPI
Compress
Log
Authentication
Authorization
Forms
Windows
ResolveCache
ASPX
ExecuteHandler
Static File
UpdateCache
SendResponse
Trace
Compress
Log
Authentication
Anon
2 - Installing IIS
Choosing the components to install
Installation methods
Graphical User Interface (Role Manager)
Command Line (pkgmgr.exe)
Unattended Setup
Lab
copyright Proge-Software 2011 all rights reserved
Installation Methods
Role Manager
Unattended
Package Manager
22
22
11
22
33
Unattended Setup
Use pkgmgr.exe with unattend.xml file
11
22
33
Lab
Installing IIS
WMI
Configuration
Interface
Configuration Reader
Command Line
Configuration
Tools
unmanaged
API
copyright Proge-Software 2011 all rights reserved
Managed
API
Configuration hierarchy
machine.config
root web.config
ASP.NET settings
Optional
web.config
Sites
web.config
Applications
web.config
Virtual Directories
applicationHost.config
Configuration tools
Graphical User Interface (IIS Manager)
Command Line (appcmd.exe)
PowerShell
Remote Management
IIS 6 compatibility
Site Bindings
Define a web site identity
If a web server hosts multiple sites, bindings are used to determine
which site will be used to answer a request
Binding parameters:
IP address
TCP port
Host headers
The Default Web Site is used to answer all requests which dont
match any other web site on the server
Only one Default Web Site can exist on a server
The Default Web Site can be removed, renamed or reconfigured
Virtual Directories
URL
Physical path
http://www.mysite1.com
D:\Sites\MySite1
http://www.mysite1.com/images
D:\Sites\MySite1\Images
http://www.mysite2.com
D:\Sites\MySite2
http://www.mysite2.com/images
D:\Sites\MySite2\Images
http://www.mysite1.com/shared
D:\Sites\Shared
http://www.mysite2.com/shared
D:\Sites\Shared
Lab
Compiled ASP.NET
ASP.NET scripts
Classic ASP scripts
PHP scripts
Executable files (CGI)
A Web Application can be defined for the site root or for a specific
folder (physical or virtual)
Applications settings are inherited through the sites folder tree
Each folder in a site can have its custom application settings
Application Pools
W3WP.EXE
W3WP.EXE
W3WP.EXE
W3WP.EXE
Instance of W3WP.EXE
Process Identity
.NET
nnnnn
Process
ID:1234
Version of .NET
Lab
Creating Web Applications
Configuring Web Applications
Creating Application Pools
Configuring Application Pools
6 - IIS Security
Site identity and Application Pool identity
File System permissions
Authentication methods
Anonymous vs. Authenticated access
Certificates and HTTPS
IP and Domain Restrictions
Lab
copyright Proge-Software 2011 all rights reserved
Authentication methods
Method
Features
Anonymous
Authentication
ASP.NET
Impersonation
Authentication
Basic
Authentication
Client Certificate
Mapping
Digest
Authentication
Forms
Authentication
Windows
Authentication
Authenticated access:
Web Server
Web Client
Import certificate
To configure certificates:
Lab
Configuring Web Site identity
Configuring Application Pool identity
Configuring authentication methods
Configuring HTTPS
Load Balancing
Design considerations
Session management
Load Balancing
Is software- or hardware-based
Load
Load Balancing:
Balancing:
is
is aa system
system where
where multiple
multiple servers
servers
share
share aa single
single IP
IP address
address and
and where
where
clients
clients access
access services
services through
through the
the
shared
shared IP
IP address
address
Design considerations
Stateful vs. Stateless
No data should be stored locally on the web server
Avoiding single points of failure
High availability for network access
High availability for back-end systems
What about user sessions?
copyright Proge-Software 2011 all rights reserved
Session management
Session management can get difficult when running on multiple loadbalanced web servers
Sessions should be able to failover between web servers without
forcing the user to start over
ASP.NET provides built-in support for storing session state in a SQL
Server database
Non- ASP.NET Web Applications need to be developed with proper
session management if they are to be deployed on multiple servers
Logging
Tracing
Debugging
8: Logging
IIS Logs
Windows Event Logs
Tracing
How the Tracing Infrastructure Works
w3core
Any
pipeline
module
TRACE_EVENT
Read
trace config
Trace
config
Trace event
consumers
Consumer
Module
Trace
output
Trace event
sources
Tracing
To Add a Failed Request Tracing Rule:
Debugging
Enabling detailed error messages
Local and Remote debugging
Enabling Visual Studio remote debugging
Debugging Web Applications
Course Evaluation