.NET track

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.

IntermediateCovers IIS 10 on Windows Server 2019/2022/2025 and Windows 10/11.
0/33 complete
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.

  1. 1Getting Started · 4 topics · Beginner
    Introduction to IIS · Installing IIS · IIS Manager · IIS Architecture
  2. 2Sites & App Pools · 6 topics · Beginner → Intermediate
    Websites and Bindings · Applications and Virtual Directories · Application Pools · Application Pool Identity · Application Pool Recycling · Default Document and Directory Browsing
  3. 3Hosting Applications · 4 topics · Intermediate
    Hosting ASP.NET Core · web.config for ASP.NET Core · Hosting ASP.NET Framework Apps · Hosting React and Angular Apps
  4. 4Security · 6 topics · Intermediate
    HTTPS and SSL Certificates · Authentication · Authorization Rules · Request Filtering · IP Address and Domain Restrictions · HTTP Response Headers
  5. 5Performance & Behaviour · 6 topics · Intermediate → Advanced
    Compression · Caching · Custom Error Pages · URL Rewrite · HTTP Redirect · MIME Types
  6. 6Operations · 6 topics · Advanced
    Logging · Failed Request Tracing · Troubleshooting Common Errors · Command-Line Management (appcmd and PowerShell) · Web Deploy · Load Balancing with ARR
  7. 7Practice · 1 topics · Advanced
    Interview Questions

Complete topic list

33 topics
1

Getting Started

4 topics
  1. Introduction to IISBeginner5m
  2. Installing IISBeginner5m
  3. IIS ManagerBeginner5m
  4. IIS ArchitectureBeginner5m
3

Hosting Applications

4 topics
  1. Hosting ASP.NET CoreIntermediate5m
  2. web.config for ASP.NET CoreIntermediate5m
  3. Hosting ASP.NET Framework AppsIntermediate5m
  4. Hosting React and Angular AppsIntermediate5m
4

Security

6 topics
  1. HTTPS and SSL CertificatesIntermediate5m
  2. AuthenticationIntermediate5m
  3. Authorization RulesIntermediate5m
  4. Request FilteringIntermediate5m
  5. IP Address and Domain RestrictionsIntermediate5m
  6. HTTP Response HeadersIntermediate5m
5

Performance & Behaviour

6 topics
  1. CompressionIntermediate5m
  2. CachingIntermediate5m
  3. Custom Error PagesIntermediate5m
  4. URL RewriteAdvanced5m
  5. HTTP RedirectAdvanced5m
  6. MIME TypesAdvanced5m
7

Practice

1 topics
  1. Interview QuestionsAdvanced15m

Code example

A taste of the track, from Introduction to IIS.

TextWhat happens when someone opens your site Illustrative
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 ───────────┘
Expected output
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

Show all 32 exercises
Application Pools

Start a stopped app pool named ShopPool and check its state.

Application Pool Identity

Grant ShopPool read access to D:\shared\media.

Application Pool Recycling

Persist ASP.NET Core Data Protection keys to a folder so cookies survive recycles.

Default Document and Directory Browsing

Disable directory browsing server-wide with PowerShell.

Hosting ASP.NET Core

Take the site offline safely during a deployment.

web.config for ASP.NET Core

Switch the app to out-of-process hosting.

Hosting ASP.NET Framework Apps

Write the Web.Release.config transform that removes debug="true".

Hosting React and Angular Apps

An Angular app is hosted under /admin/. What else must match?

HTTPS and SSL Certificates

Write a URL Rewrite rule that redirects all HTTP traffic to HTTPS.

Authentication

Where would you check if a domain user gets prompted for a password instead of signing in automatically?

Authorization Rules

Deny all anonymous users for the whole site.

Request Filtering

Raise the upload limit to 200 MB with appcmd.

IP Address and Domain Restrictions

Block a single abusive IP 192.0.2.50 for the whole site.

HTTP Response Headers

Add a Content-Security-Policy in report-only mode.

Compression

Install both compression role services on Windows Server.

Caching

Set images in /images to cache for 7 days.

Custom Error Pages

Make an API application keep its own error responses.

URL Rewrite

Rewrite /blog/my-post to /blog.aspx?slug=my-post internally.

HTTP Redirect

Send every request to a single maintenance page temporarily.

MIME Types

Add the MIME type for .json files served as static content.

Logging

Move the Shop site’s logs to D:\iislogs.

Failed Request Tracing

Disable failed request tracing for the Shop site.

Troubleshooting Common Errors

A site shows 503 Service Unavailable. List your first three checks.

Command-Line Management (appcmd and PowerShell)

List all app pools and their state with appcmd.

Web Deploy

Preview what Web Deploy would change without changing anything.

Load Balancing with ARR

Which ASP.NET Core feature lets the app see the real client IP behind ARR?

Common interview questions

Frequently asked questions

Is IIS still used with ASP.NET Core?
Yes. ASP.NET Core runs behind IIS through the ASP.NET Core Module, and many companies host on Windows Server. Linux, containers and Azure App Service are common alternatives.
Do I need Windows Server to practise?
No. Windows 10/11 Pro include IIS as an optional feature, which is enough for every lesson in this track.