Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

โ€œInvest in yourself โ€” your confidence is always worth it.โ€

Explore Cosmetic Hospitals

Start your journey today โ€” compare options in one place.

DOTNET: IIS Performance Checklist


โœ… IIS-Only Performance Optimization Settings (Complete List)


1. Application Pool Settings (IIS Core)

โœ” Start Mode

  • AlwaysRunning
    โ†’ Avoid cold starts.

โœ” Idle Time-out

  • Increase or disable (0) if you want warm apps.
    Default (20 min) causes unexpected pool shutdown.

โœ” Worker Process Settings

  • Maximum Worker Processes
    • Keep 1 (no web garden) for ASP.NET/Core.
    • Web gardens only for stateless apps.
  • Queue Length
    • Increase from default 1000 to 5000โ€“20000 depending on load.
      Prevents 503 (Queue full) errors.

โœ” Recycling Settings

  • Disable Regular Time-Based Recycling
    Stops unnecessary restarts.
  • Enable Overlapped Recycling
    Zero-downtime recycling.
  • Disable application pool recycling at idle
    (set Idle Time-out to 0).

2. Site-Level Performance Settings

โœ” Connection Limits

  • connectionTimeout
  • maxConnections
  • Keep-alive enabled.

โœ” HTTP/2 & HTTP/3

  • Enable HTTP/2 (and HTTP/3 on Windows Server 2022+) for higher throughput.

โœ” Compression

(IIS โ†’ Compression feature)

  • Enable Static Compression
  • Enable Dynamic Compression
  • Ensure compression for:
    • text/html
    • text/css
    • application/javascript
    • application/json

โœ” Caching (Output Caching / Kernel Caching)

(IIS โ†’ Output Caching)

  • Enable Kernel Caching (huge perf win for static files)
  • Enable Output Caching for dynamic pages (if safe)
  • Configure:
    • Cache duration
    • Vary-by rules

3. Static File Handling Settings

โœ” Static Content

  • Enable staticContent module
  • Set cache-control headers (long max-age)
  • Enable ETags or Last-Modified
  • Make sure static file module is above ASP.NET modules.

4. IIS Modules Management (Pipeline)

โœ” Disable/Remove Unused Modules

Huge performance improvement because every module executes per request.

Disable modules like:

  • WebDAV
  • ASP
  • PHP (if not used)
  • CGI
  • ISAPI Filters
  • Session State
  • Windows Authentication (if not needed)
  • Request Filtering (if handled by reverse proxy)

Goal: Lightest possible request pipeline.


5. Request Filtering (Limits)

โœ” Max Request Size

  • Tune maxAllowedContentLength
  • Tune maxRequestLength

โœ” URL Length Limits

  • Prevent long-URL attacks.

โœ” Header Limits

  • Tune header size limits.

All these reduce bad requests hitting Kestrel or app layer.


6. Logging Settings

โœ” W3C Logging

  • Disable unnecessary fields
  • Keep logs on separate fast disk
  • Avoid logging ALL headers (expensive)

โœ” Failed Request Tracing (FREB)

  • Only enable for targeted diagnostics
  • Turn off afterward

7. Application Initialization (Warm-Up)

(IIS โ†’ Configuration Editor โ†’ system.webServer/applicationInitialization)

  • DoAppInitAfterRestart = True
  • PreloadEnabled = True

This ensures app is warm and ready before first user hit.


8. Dynamic IP Restrictions (DoS protection)

Not directly performance but prevents IIS from being overwhelmed.

  • Enable Dynamic Deny based on:
    • Request rate
    • Concurrent requests
    • Bad requests

9. WebSockets / Long-Running Connections Settings

  • Enable only if needed.
  • Disable WebSockets for performance if app does not use them.

10. Client Keep-Alive Settings

  • Keep-alive enabled
  • Keep-alive timeout tuned (15โ€“120 seconds depending on use)

11. Centralized Configuration That Impacts Performance

โœ” applicationHost.config

Key performance elements:

  • <system.webServer/serverRuntime uploadReadAheadSize="โ€ฆ">
  • <system.webServer/security/requestFiltering>
  • <system.webServer/httpCompression>
  • <system.webServer/webSocket>
  • <system.webServer/cache>

12. Kernel-Mode Optimizations (HTTP.sys)

(These are still considered IIS-level because IIS sits on top of HTTP.sys)

โœ” Enable Kernel Caching

โ†’ Boosts static file performance massively.

โœ” Set MaxBandwidth & MinFileBytesPrSec

โ†’ Prevents slow clients from consuming server I/O.

โœ” Enable URL ACL Tuning

โ†’ Helps reduce request overhead.


๐ŸŽฏ FINAL OUTPUT

Exact list of IIS settings that impact performance:

App Pool

  • AlwaysRunning
  • Idle Timeout
  • Recycling settings
  • Maximum Worker Processes
  • Queue Length

Compression

  • Static compression
  • Dynamic compression

Caching

  • Kernel caching
  • Output caching
  • Static file caching

Modules

  • Disable unused modules
  • Optimize pipeline

Request filtering

  • maxRequestLength
  • maxAllowedContentLength
  • URL/header limits

Connection settings

  • connectionTimeout
  • maxConnections
  • Keep-alive

HTTP/2 / HTTP/3

  • Enable

Logging

  • Trim fields
  • Optimize log location

Application Initialization

  • PreloadEnabled
  • DoAppInitAfterRestart

Static file handling

  • cache-control headers
  • ETags
  • Last-Modified

Dynamic IP Restrictions

  • Enable rate limiting

HTTP.sys kernel settings

  • uploadReadAheadSize
  • MinFileBytesPerSec
  • MaxBandwidth


Here is the exact location of every IIS performance optimization setting โ€” which GUI blade, which config file, or which PowerShell command you must use.


โœ… 1. Application Pool Settings (All performance-critical)

1.1 Start Mode โ†’ โ€œAlwaysRunningโ€

Where to configure:

  • IIS Manager โ†’ Application Pools
  • Select your App Pool โ†’ Advanced Settings
  • Start Mode = AlwaysRunning

Config file:

applicationHost.config

<applicationPoolDefaults ... startMode="AlwaysRunning" />
Code language: HTML, XML (xml)

1.2 Idle Timeout

Where:

  • IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Advanced Settings
  • Idle Time-out (minutes) โ†’ Set to 0 for performance-sensitive apps

Config:

<processModel idleTimeout="00:00:00"/>
Code language: HTML, XML (xml)

1.3 Recycling Settings

Where:

IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Recyclingโ€ฆ

Disable:

  • Regular Time Interval
  • Specific Time
  • Memory-based recycling unless required

Config:

<recycling periodicRestart>
    <schedule />
</recycling>
Code language: HTML, XML (xml)

1.4 Queue Length

Where:

IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Advanced Settings

  • Queue Length = 5000โ€“20000

Config:

<applicationPoolDefaults queueLength="20000" />
Code language: HTML, XML (xml)

1.5 Maximum Worker Processes

Where:

IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Advanced Settings

  • Maximum Worker Processes = 1 (no web garden)

Config:

<processModel maxProcesses="1" />
Code language: HTML, XML (xml)

โœ… 2. Site-Level Settings

2.1 connectionTimeout + Keep-Alive

Where:

IIS Manager โ†’ Sites โ†’ Select Site โ†’ Limitsโ€ฆ

You can configure:

  • Connection timeout
  • Max connections

Config:

<limits connectionTimeout="00:02:00" maxConnections="100000" />
Code language: HTML, XML (xml)

2.2 Enable HTTP/2 / HTTP/3

Where:

  • Windows Features โ†’ HTTP/2 is enabled automatically if:
    • Server 2016+: HTTP/2 TLS
    • Server 2022+: HTTP/3 optional feature

Config:

<system.webServer>
  <httpProtocol allowKeepAlive="true" />
</system.webServer>
Code language: HTML, XML (xml)

โœ… 3. Compression

3.1 Static Compression

3.2 Dynamic Compression

Where:

IIS Manager โ†’ Server or Site โ†’ Compression

  • Enable:
    โœ” Static compression
    โœ” Dynamic compression

Config:

<urlCompression doStaticCompression="true" doDynamicCompression="true" />
Code language: HTML, XML (xml)

โœ… 4. Caching

4.1 Output Caching

Where:

IIS Manager โ†’ Site โ†’ Output Caching

  • Enable Cache
  • Add caching rules

Config:

<caching enabled="true">
    <profiles>
        <add extension=".aspx" policy="CacheUntilChange" duration="3600"/>
    </profiles>
</caching>
Code language: HTML, XML (xml)

4.2 Kernel Caching

Where:

IIS Manager โ†’ Server โ†’ Feature Delegation
Ensure:

  • Output Caching = Read/Write

Config:

<caching enableKernelCache="true" />
Code language: HTML, XML (xml)

โœ… 5. Static File Handling

5.1 Cache-Control headers

Where:

IIS Manager โ†’ Site โ†’ HTTP Response Headers

  • Add โ†’ Cache-Control: public, max-age=31536000

Config:

<httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="public, max-age=31536000" />
    </customHeaders>
</httpProtocol>
Code language: HTML, XML (xml)

โœ… 6. Modules Optimization (DISABLING unused modules)

Where:

IIS Manager โ†’ Site โ†’ Modules

  • Remove:
    • WebDAV
    • ASP
    • ISAPI Filters
    • CGI
    • Windows Authentication (if unused)

Config:

<modules>
   <remove name="WebDAV" />
   <remove name="ISAPI-filter" />
</modules>
Code language: HTML, XML (xml)

โœ… 7. Request Filtering

7.1 Max Request Body Size

Where:

IIS Manager โ†’ Site โ†’ Request Filtering โ†’ Rules โ†’ Request Limits

  • maxAllowedContentLength
  • maxUrl
  • maxQueryString

Config:

<requestFiltering>
  <requestLimits maxAllowedContentLength="52428800" />
</requestFiltering>
Code language: HTML, XML (xml)

โœ… 8. Logging Settings

Where:

IIS Manager โ†’ Site โ†’ Logging

  • Choose fields
  • Directory location
  • Format

Config:

<logFile enabled="true" directory="D:\IISLogs" logExtFileFlags="Date,Time,ClientIP,..." />
Code language: HTML, XML (xml)

โœ… 9. Application Initialization (Warm-Up)

Where:

IIS Manager โ†’ Site โ†’ Configuration Editor
Section:
system.webServer/applicationInitialization

Set:

  • doAppInitAfterRestart = true
  • remapManagedRequestsTo = “true”
  • preloadEnabled = true (in site โ†’ Advanced Settings)

Config:

<applicationInitialization doAppInitAfterRestart="true">
    <add initializationPage="/"/>
</applicationInitialization>
Code language: HTML, XML (xml)

โœ… 10. Dynamic IP Restrictions

Where:

IIS Manager โ†’ Site โ†’ IP Address and Domain Restrictions

  • Enable:
    • Deny By Concurrent Requests
    • Deny By Request Rate

Config:

<dynamicIpSecurity enableRateLimiting="true" maxRequests="200" requestIntervalInMilliseconds="500" />
Code language: HTML, XML (xml)

โœ… 11. WebSocket Settings

Where:

IIS Manager โ†’ Site โ†’ WebSocket Protocol

  • Disable if unused

Config:

<webSocket enabled="false" />
Code language: HTML, XML (xml)

โœ… 12. HTTP.sys Kernel Settings

Where:

Registry or appcmd, but can be done via Configuration Editor under:
system.webServer/serverRuntime

uploadReadAheadSize

<serverRuntime uploadReadAheadSize="49152" />
Code language: HTML, XML (xml)

MinFileBytesPerSec

<serverRuntime minFileBytesPerSec="240" />
Code language: HTML, XML (xml)

๐ŸŽฏ FINAL SUMMARY (Mapped)

#SettingWhere in IIS ManagerConfig Path
1Start ModeApp Pool โ†’ AdvancedstartMode
2Idle TimeoutApp Pool โ†’ AdvancedidleTimeout
3RecyclingApp Pool โ†’ Recycling<recycling>
4Queue LengthApp Pool โ†’ AdvancedqueueLength
5Max Worker ProcessesApp Pool โ†’ AdvancedmaxProcesses
6Connection TimeoutSite โ†’ Limits<limits>
7HTTP/2System FeatureHTTP.sys
8CompressionServer/Site โ†’ Compression<urlCompression>
9Output CacheSite โ†’ Output Caching<caching>
10Kernel CacheSite โ†’ Output Caching<caching>
11Static HeadersSite โ†’ HTTP Response Headers<customHeaders>
12Modules RemoveSite โ†’ Modules<modules>
13Request Size LimitsSite โ†’ Request Filtering<requestFiltering>
14LoggingSite โ†’ Logging<logFile>
15App InitializationSite โ†’ Config Editor<applicationInitialization>
16IP RestrictionsSite โ†’ IP Restrictions<dynamicIpSecurity>
17WebSocketsSite โ†’ WebSocket<webSocket>
18uploadReadAheadSizeConfig Editor<serverRuntime>

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services โ€” all in one place.

Explore Hospitals
I'm Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms. I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.

Related Posts

Complete Guide to AI Guest Posting with GuestPostAI

In the fast-evolving digital marketing landscape, search engine optimization (SEO) remains the ultimate catalyst for sustainable organic growth. Among the myriad of off-page SEO strategies, guest posting…

Read More

WizBrand Review: The Ultimate All-in-One Digital Marketing Platform for Growth

In the rapidly evolving digital ecosystem, running a successful online marketing strategy often feels like juggling spinning platesโ€”marketing teams routinely find themselves bouncing between disconnected platforms for…

Read More

Best Invoice and Payment Management Software for Growing Businesses

In the fast-paced modern economy, business growth relies heavily on healthy cash flow and efficient financial operations. Yet, countless organizations find themselves bogged down by administrative bottlenecks….

Read More

Mastering Generative AI Workflows: Why You Need the Ultimate AI Prompt Management Tool

Artificial intelligence has rapidly evolved from a futuristic novelty into the core operational engine of modern business, creative production, and software development. Whether you are using large…

Read More

Best KYC Software in 2026

You already know that KYC is a compliance requirement. What most comparisons skip is the part that actually matters once you are past procurement: how these platforms…

Read More

Free Content Publishing Platforms: The Ultimate FreePostFinder Directory

In today’s competitive digital landscape, distributing your content effectively is just as critical as creating it, yet rising ad costs and unpredictable social media algorithms make organic…

Read More
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Skylar Bennett
Skylar Bennett
7 months ago

this is a really useful reference for anyone running .NET on IIS. Youโ€™ve covered all the crucial configuration points: setting the application pool to AlwaysRunning and disabling idle timeโ€‘outs to avoid coldโ€‘starts; tuning queue length and worker processes to handle traffic surges; enabling compression, static/dynamic caching, and HTTP/2/3 to speed up response times; disabling unnecessary IIS modules to minimize overhead; and even configuring request limits, logging, and HTTP.sys kernelโ€‘level optimizations to make the server lean and efficient. By combining these IISโ€‘level tweaks with proper appโ€‘level practices (like asynchronous calls, caching, and efficient routing in .NET), you can significantly reduce latency and improve throughput in production. This kind of holistic approach โ€” infrastructure + platform + code โ€” is exactly what separates a โ€œgood enoughโ€ deployment from a truly highโ€‘performance one. Keep sharing such wellโ€‘structured guidelines!

devopsschool
devopsschool
8 months ago

This checklist makes it clear how much the hosting configuration of Internet Information Services (IIS) matters for a .NET applicationโ€™s real-world performance. By adjusting settings like keeping the application pool โ€œAlwaysRunning,โ€ disabling unnecessary module overhead, enabling HTTP compression and static file caching, and using proper output/kernel caching, one can reduce server load, speed up response times, and avoid common issues like startup delays or 503 errors. The emphasis on fine-tuning connection limits, request filtering, and logging also shows that performance isnโ€™t just about code โ€” server-side tuning plays a huge role. Overall, this is a practical and comprehensive guide worth bookmarking for any ASP.NET/IIS deployment.

2
0
Would love your thoughts, please comment.x
()
x