TomLabs Apps
← All applications

IISBlitz

Ops console for IIS: sites, pools, config, logs, live CPU/RAM and memory dumps

github windows iis avalonia dotnet Public Homepage

⚡ IISBlitz

Build Nightly Release

A fast desktop console for the IIS sites on a Windows server: start, stop and recycle, edit appsettings and web.config in place, watch CPU and memory of every app pool, read logs and Windows events, take a memory dump — one portable exe that keeps itself up to date. Built with Avalonia UI and .NET 10.

Features

Sites and pools

  • Start / stop / restart a site, start / stop / recycle its application pool
  • Applications of the site with their pools and a Recycle per pool — recycling restarts one pool only, so sub-applications in other pools are not touched
  • Bindings and SSL certificates (subject, issuer, expiry, thumbprint) at a glance
  • Automatic GET /health probe — shows the status and version the deployed app reports
  • Open the site in the browser or its folder in Explorer, copy the physical path

Configuration

  • appsettings.json editor with JSON highlighting: chips for base, Development, Production and any other appsettings.*.json found; missing files are created on save
  • Apply to web.config writes ASPNETCORE_ENVIRONMENT for the selected file's environment; the toolbar shows what web.config currently sets (or that it is not set and ASP.NET Core defaults to Production)
  • web.config editor with XML highlighting, save and reload from disk
  • Any file as a tab — the + in the tab strip opens a file of the site (highlighting by extension); open tabs are remembered per site and come back next time, Ctrl+S saves all of them
  • Folder permissions of the site: list, add and remove ACL entries

Monitoring

  • Live CPU and memory of every app pool's worker processes — next to each site in the sidebar, on the overview cards and as two-minute charts; the worker table updates every two seconds
  • Memory dump — one click writes a full dump of a worker process (MiniDumpWriteDump) to Documents\IISBlitz\dumps and opens Explorer; the file opens in Visual Studio, WinDbg or dotnet-dump

Logs and events

  • Log viewer for the site's logs folder (tail of the selected file)
  • Search across all log files with a hit count per file and highlighted matches
  • Windows Event Log: IIS / ASP.NET Core / WAS events of the last 24 hours, filtered by level, with a detail pane and copy

UI

  • Command palette (Ctrl+K): fuzzy search across sites, tabs and actions — recycle, restart, dump a worker, switch the update channel, open the app log…
  • Theme switch System / Light / Dark (Ctrl+Shift+L cycles); System follows Windows live, Light and Dark are remembered
  • Keyboard: F5 refresh · Ctrl+S save · Ctrl+R recycle · Ctrl+F filter sites
  • Version in the header, update banner and updater state in the status bar

Download

Channel What Where
Stable Tagged releases Releases
Nightly Every push to master, version 0.x.y-nightly.<commit> Nightly pre-release

Unzip IISBlitz-win-x64.zip (or win-arm64) somewhere writable — for example C:\Tools\IISBlitz — and run IISBlitz.exe as administrator; IIS can only be managed from an elevated process. The exe is self-contained: nothing else to install.

Updates

IISBlitz updates itself through TomLabs.AutoUpdate:

  • A nightly build follows the nightly pre-release, a release follows stable; switch the channel from the command palette ("Switch to nightly/stable updates"), the choice is remembered.
  • The app checks a few seconds after start and every six hours. When a newer build exists the status bar shows "v0.7.0 available · Update"; the zip is downloaded to %LOCALAPPDATA%\IISBlitz\updates, its SHA-256 checked, the manifest's ECDSA signature verified, and Restart to update swaps the exe and relaunches with the same elevation.
  • The previous exe stays as IISBlitz.exe.old until the new build shows its window; a build that fails to start is rolled back automatically.
  • "Check for updates" in the palette runs a check now; the result (up to date, check failed: …, or why updating is off — read-only folder, second instance) is shown in the status bar.

Diagnostics

File Purpose
%APPDATA%\IISBlitz\iisblitz.log Updater and monitor messages ("Open app log" in the palette)
%APPDATA%\IISBlitz\crash.log Unhandled exceptions
%APPDATA%\IISBlitz\settings.json Theme and update channel
Documents\IISBlitz\dumps Memory dumps

Because the app runs elevated, these live in the profile of the account you elevated with.

Building

git clone https://github.com/TomasBouda/IISBlitz.git
cd IISBlitz
dotnet run --project src/TomLabs.IISBlitz.App

The updater library comes from nuget.org (TomLabs.AutoUpdate.Avalonia). A release-style build — self-contained, trimmed, single file, ~25 MB:

dotnet publish src/TomLabs.IISBlitz.App/TomLabs.IISBlitz.App.csproj -c Release -r win-x64 -o publish

IISBLITZ_UPDATE_MANIFEST=https://host/latest.json points the updater at a test manifest instead of GitHub.

Releasing

Every push to master publishes the nightly pre-release. A stable release is a tag:

git tag v0.7.0
git push origin v0.7.0

Both go through the shared publish-app.yml workflow of TomLabs.AutoUpdate, which builds win-x64 and win-arm64, attaches update.json (version, commit, SHA-256 per asset) and signs it with the UPDATE_SIGNING_KEY repository secret. Bump <VersionPrefix> in the csproj and add a section to CHANGELOG.md first.

Tech stack

Layer Technology
UI Avalonia UI 11.3, Fluent theme with custom "ops console" tokens and styles
Pattern MVVM (CommunityToolkit.Mvvm + ReactiveUI commands)
Editors AvaloniaEdit + TextMate (Dark+ / Light+ follow the theme)
IIS Microsoft.Web.Administration; System.Diagnostics.Eventing.Reader for events
Updates TomLabs.AutoUpdate (GitHub Releases source, signed manifests)
Icons Projektanker.Icons.Avalonia (FontAwesome)
Target .NET 10, Windows x64 / arm64

License

MIT © Tomáš Bouda

Changelog

0.6.1 — unreleased

  • Changed: the theme switch now has a System option that follows Windows live; earlier Light/Dark choices were reset to System once.
  • Added: the header button shows the current mode (half circle = System, sun, moon); the command palette can set each mode directly.
  • Changed: amber bolt application icon (icon.png, window icon) matching the UI; appstore.json describes the app for the TomLabs app store, which links to these GitHub releases.
  • Added: open any file of a site as an extra tab ("+" in the tab strip or the palette); tabs are remembered per site, Ctrl+S saves every open file.
  • Added: the overview lists the site's applications with their pools and a Recycle button per pool — recycling restarts only that pool, so sub-applications in other pools keep running.
  • Added: live CPU and memory of every app pool's worker processes — in the sidebar, on the overview cards and as two-minute charts.
  • Added: one-click full memory dump of a worker process (Documents\IISBlitz\dumps), opens in Visual Studio, WinDbg or dotnet-dump.
  • Added: the status bar shows the updater state (up to date / check failed / why updating is off) and the app writes %APPDATA%\IISBlitz\iisblitz.log; "Open app log" in the command palette.
  • Fixed: nightly builds no longer get stuck on a build whose commit hash happens to sort high (updater 0.2.1).
  • Changed: built on .NET 10.
  • Changed: the health endpoint card colours the status (Healthy green, Degraded amber, Unhealthy red).
  • Changed: updates keep the previous executable until the new build shows its window; a build that fails to start is rolled back automatically.
  • Changed: update manifests are signed; the app only installs builds signed by the release pipeline.
  • Removed: the Ping / 5× ping health check and the response time chart; the automatic GET /health probe on the overview stays.
  • Changed: the self-update library comes from nuget.org (TomLabs.AutoUpdate 0.3.2) instead of a git submodule; updates work as before.

0.6.0 — 2026-09-15

  • Added: in-app updates through TomLabs.AutoUpdate — the status bar offers "Update" when a newer build is on GitHub Releases (nightly builds follow the nightly pre-release, releases follow stable); the channel can be switched from the command palette.
  • Changed: releases and nightly builds are published by the shared workflow with an update.json manifest.
  • Removed: the Response tab (HTTP inspector and JS console capture) together with the PuppeteerSharp dependency.
  • Fixed: the appsettings toolbar no longer claims web.config sets Production when ASPNETCORE_ENVIRONMENT is absent; it shows "not set → Production".

0.5.0 — 2026-09-15

  • Changed: complete UI redesign ("ops console"): dark and light palettes, custom title bar, hairline cards, status dots, subtle animations.
  • Added: command palette (Ctrl+K) searching sites, tabs and actions.
  • Added: theme follows the OS and the toggle is remembered; editor colours switch with the theme.
  • Added: overview cards with an automatic GET /health probe showing the deployed version.
  • Changed: appsettings chips select the file (base, Development, Production, …); "Apply to web.config" writes the selected file's environment. Staging is no longer offered by default.
  • Changed: Windows events load in the background with a 24 h filter and show a detail pane.
  • Changed: version shown in the header comes from the assembly; crashes are written to %APPDATA%\IISBlitz\crash.log.
  • Changed: the release exe is trimmed and compressed (117 MB → 27 MB); a nightly pre-release is published from every push to master.

0.4.0

  • Added: folder permissions editor and JS console capture.