IIS Web Core
You run iis web core by loading the host engine inside your own custom process. Your app passes a local file path to start the web server right away. Teams often use this setup to test sites or host small web tools. Still, teams often grant broad host permissions to make the server start fast. When host roles are too wide, any user on the box can change server rules. How iis web core works inside a custom process Standard Windows web servers use a central system service to manage all running
JSON Web Tokens (JWT): the complete guide
Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.
You run iis web core by loading the host engine inside your own custom process. Your app passes a local file path to start the web server right away. Teams often use this setup to test sites or host small web tools. Still, teams often grant broad host permissions to make the server start fast. When host roles are too wide, any user on the box can change server rules.
How iis web core works inside a custom process
Standard Windows web servers use a central system service to manage all running sites. The core engine works in a different way by skipping that central service. Your app loads the core web library right into its own memory space. You must provide two local files when your process starts the web engine. The first file holds the main server settings and loads the needed web modules. The second file holds the site paths and the basic routing rules. Each process runs as its own isolated web server on the host machine. The server uses the Windows account of the parent process to read local files. If a developer starts the app, the web engine runs with that developer role. This makes local testing simple because you do not need full system rights. You can start and stop the web engine whenever your main app starts or stops. When the parent process closes, the web server shuts down at the same time.
What native host setups solve and what they miss
Host setups let your team run a fast web engine without full server installs. You can bundle the exact server rules your app needs inside its own folder. One app cannot break another app because they do not share a main config file. Windows file permissions also control who can start the host process on the server. Still, this native model only checks who starts the app at launch time. It does not check what individual admin commands or database queries do in flight. Once an engineer logs into the Windows host, they hold full rights over the process. They can read plain text keys stored inside the local server config files. They can also query backend data stores without field checks on the results. Native host logs show web traffic, but they miss direct edits made during a live session. If a query returns user emails or phone numbers, the host prints the raw text. Native role checks stop outside users, yet they leave inside sessions wide open.
Securing local config files and runtime sessions
Teams need strict rules for how engineers fix issues on hosts running web engines. First, remove shared admin accounts on the Windows machines that run your web processes. Give each process its own low-privilege Windows role that only reads its own folder. Next, move database keys out of local text files and into a secure store. Even with tight file rules, engineers still need a safe way to run live checks. When an admin troubleshoots a host, you must log every command they run. You also need a way to mask sensitive fields like card numbers or national IDs. Masking rewrites matched fields in results when someone queries a connected data store. By pairing tight host roles with command checks, you keep both files and data safe.
JSON Web Tokens (JWT): architecture patterns and best practices
Continue reading? Get the full guide.
Free. No spam. Unsubscribe anytime.
Add runtime guardrails and masking beside your databases and APIs
Login rules, role grants, and CI checks govern who connects to your stack. Yet any allowed script, engineer, or AI agent still runs commands with the full scope of its role. For workloads on Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes, SSH, or internal HTTP services, hoop.dev sits beside the service as an open-source proxy, a sidecar for your database or API.
Before a query runs, hoop.dev guardrails check the statement against your rules. An AI Analyzer you configure can score intent or hold risky calls for human review. Next, hoop.dev data masking rewrites sensitive fields in responses, and each verdict is logged per listener. Explore the MIT-licensed project on GitHub.
Frequently asked questions
How is iis web core different from the full Windows web server?
The full server runs as a background system service that manages many sites at once. The core version is a library that runs inside your own app process for one workload.
Does the hosted web engine share settings with the main system server?
No, the hosted engine reads its own config file that you pass in at startup. Changes to the main Windows server do not change your custom hosted process.
What account permissions does the hosted web engine use at runtime?
The engine uses the exact Windows user role of the process that started it. You should run that parent process under a dedicated role with minimal file rights.
Related guides
In this post