IIS (Internet Information Services) Tutorial
Host ASP.NET Core, ASP.NET MVC and SPA apps on Windows Server: app pools, bindings, SSL, security, URL Rewrite, logging and troubleshooting.
- Topics
- 33
- Full lessons
- 33
- Est. hours
- ~6
- Interview Qs
- 10
Overview
Internet Information Services (IIS) is the web server built into Windows and Windows Server. Most companies running .NET on-premises or on Windows VMs host their sites and APIs on IIS.
This track walks through every important IIS setting with a real example — what it does, where to find it in IIS Manager, the matching web.config or PowerShell, and when to change it — so you can deploy, secure and troubleshoot production sites confidently.
What you will learn
- Install IIS and understand its architecture
- Configure sites, bindings, app pools and identities
- Host ASP.NET Core, ASP.NET MVC and React/Angular apps
- Secure, tune, log and troubleshoot production sites
Prerequisites
You will get the most from this track if you already know:
Learning path
The recommended sequence, from beginner to advanced. Each stage builds on the one before.
- 1Getting Started · 4 topics · BeginnerIntroduction to IIS · Installing IIS · IIS Manager · IIS Architecture
- 2Sites & App Pools · 6 topics · Beginner → IntermediateWebsites and Bindings · Applications and Virtual Directories · Application Pools · Application Pool Identity · Application Pool Recycling · Default Document and Directory Browsing
- 3Hosting Applications · 4 topics · IntermediateHosting ASP.NET Core · web.config for ASP.NET Core · Hosting ASP.NET Framework Apps · Hosting React and Angular Apps
- 4Security · 6 topics · IntermediateHTTPS and SSL Certificates · Authentication · Authorization Rules · Request Filtering · IP Address and Domain Restrictions · HTTP Response Headers
- 5Performance & Behaviour · 6 topics · Intermediate → AdvancedCompression · Caching · Custom Error Pages · URL Rewrite · HTTP Redirect · MIME Types
- 6Operations · 6 topics · AdvancedLogging · Failed Request Tracing · Troubleshooting Common Errors · Command-Line Management (appcmd and PowerShell) · Web Deploy · Load Balancing with ARR
- 7Practice · 1 topics · AdvancedInterview Questions
Complete topic list
33 topicsGetting Started
4 topics- Introduction to IISBeginner5m
- Installing IISBeginner5m
- IIS ManagerBeginner5m
- IIS ArchitectureBeginner5m
Sites & App Pools
6 topics- Websites and BindingsBeginner5m
- Applications and Virtual DirectoriesBeginner5m
- Application PoolsBeginner5m
- Application Pool IdentityBeginner5m
- Application Pool RecyclingIntermediate5m
- Default Document and Directory BrowsingIntermediate5m
Hosting Applications
4 topics- Hosting ASP.NET CoreIntermediate5m
- web.config for ASP.NET CoreIntermediate5m
- Hosting ASP.NET Framework AppsIntermediate5m
- Hosting React and Angular AppsIntermediate5m
Security
6 topics- HTTPS and SSL CertificatesIntermediate5m
- AuthenticationIntermediate5m
- Authorization RulesIntermediate5m
- Request FilteringIntermediate5m
- IP Address and Domain RestrictionsIntermediate5m
- HTTP Response HeadersIntermediate5m
Performance & Behaviour
6 topics- CompressionIntermediate5m
- CachingIntermediate5m
- Custom Error PagesIntermediate5m
- URL RewriteAdvanced5m
- HTTP RedirectAdvanced5m
- MIME TypesAdvanced5m
Operations
6 topics- LoggingAdvanced5m
- Failed Request TracingAdvanced5m
- Troubleshooting Common ErrorsAdvanced5m
- Command-Line Management (appcmd and PowerShell)Advanced5m
- Web DeployAdvanced5m
- Load Balancing with ARRAdvanced5m
Practice
1 topics- Interview QuestionsAdvanced15m
Code example
A taste of the track, from Introduction to IIS.
Browser ──https://shop.example.com/products──► HTTP.sys (Windows kernel)
│ which site? binding = shop.example.com:443
▼
Application pool "ShopPool"
│ w3wp.exe worker process
▼
ASP.NET Core Module → your app (Kestrel in-process)
│
◄──────────────────── HTML / JSON response ───────────┘
IIS routes the request by its binding to the right site, runs it in that site’s worker process and returns the app’s response.
Practice exercises
Name two kinds of applications IIS can host.
Add Windows Authentication to an existing IIS installation on Windows Server.
Back up the IIS configuration from the command line.
Recycle only the app pool named ApiPool.
Test shop.example.com locally before DNS exists.
Stop the root site’s <system.webServer> settings from applying to child applications.
Show all 32 exercises
Start a stopped app pool named ShopPool and check its state.
Grant ShopPool read access to D:\shared\media.
Persist ASP.NET Core Data Protection keys to a folder so cookies survive recycles.
Disable directory browsing server-wide with PowerShell.
Take the site offline safely during a deployment.
Switch the app to out-of-process hosting.
Write the Web.Release.config transform that removes debug="true".
An Angular app is hosted under /admin/. What else must match?
Write a URL Rewrite rule that redirects all HTTP traffic to HTTPS.
Where would you check if a domain user gets prompted for a password instead of signing in automatically?
Deny all anonymous users for the whole site.
Raise the upload limit to 200 MB with appcmd.
Block a single abusive IP 192.0.2.50 for the whole site.
Add a Content-Security-Policy in report-only mode.
Install both compression role services on Windows Server.
Set images in /images to cache for 7 days.
Make an API application keep its own error responses.
Rewrite /blog/my-post to /blog.aspx?slug=my-post internally.
Send every request to a single maintenance page temporarily.
Add the MIME type for .json files served as static content.
Move the Shop site’s logs to D:\iislogs.
Disable failed request tracing for the Shop site.
A site shows 503 Service Unavailable. List your first three checks.
List all app pools and their state with appcmd.
Preview what Web Deploy would change without changing anything.
Which ASP.NET Core feature lets the app see the real client IP behind ARR?
Common interview questions
- What is IIS?
- What is an application pool?
- What is a site binding?
- How do you host an ASP.NET Core app on IIS?
- What is ApplicationPoolIdentity?
- What does app pool recycling do and why can it cause problems?
- How do you make a React or Angular SPA work on IIS?
- How do you troubleshoot HTTP 500.19, 500.30 and 502.5 errors?
- What is Failed Request Tracing?
- How would you load balance two IIS servers?