How to Access and Manage IISExpress Configuration: A Developer’s Guide


2 views

Unlike the full IIS (Internet Information Services), IISExpress is a lightweight, self-contained version designed for development environments. It lacks a dedicated graphical management interface like the IIS Manager. Instead, configuration is primarily handled through:

  • applicationhost.config files
  • command-line tools
  • Visual Studio integration

The primary configuration file for IISExpress is typically found at:

%userprofile%\Documents\IISExpress\config\applicationhost.config

You can modify this XML file directly to configure sites, bindings, and application pools. For Visual Studio-launched instances, check:

$(solutionDir)\.vs\config\applicationhost.config

IISExpress provides several command-line utilities for management:

iisexpress.exe /config:applicationhost.config
iisexpress.exe /site:YourSiteName
iisexpress.exe /systray:true

To list all running sites:

tasklist /fi "imagename eq iisexpress.exe"

Visual Studio provides some management capabilities through:

  1. Project Properties > Web > Servers section
  2. Solution Explorer right-click on project > "View in Browser"
  3. The system tray icon when IISExpress is running

While there's no official GUI, these tools can help:

  • Jexus Manager: Third-party GUI for IISExpress
  • IIS Express Admin Tool: Open-source management utility
  • PowerShell scripts: For automated configuration

Example PowerShell command to modify bindings:

# PowerShell example
$configPath = "$env:USERPROFILE\Documents\IISExpress\config\applicationhost.config"
$xml = [xml](Get-Content $configPath)
$site = $xml.SelectSingleNode("//site[@name='YourSiteName']")
$site.bindings.binding.protocol = "http"
$site.bindings.binding.bindingInformation = "*:8080:localhost"
$xml.Save($configPath)

When troubleshooting IISExpress issues:

iisexpress.exe /trace:error

Check logs at:

%userprofile%\Documents\IISExpress\TraceLogFiles

For port conflicts, use:

netstat -ano | findstr "8080"

Unlike full IIS which has the familiar IIS Manager GUI, IISExpress runs as a lightweight development server without dedicated management interface. Configuration primarily happens through:


applicationhost.config

located in your Documents folder under:


%userprofile%\Documents\IISExpress\config

For developers needing to modify settings, these approaches work best:


1. Direct config file editing (recommended for precise control)
2. Visual Studio's project properties → Web tab
3. Command-line administration via appcmd.exe

To debug a site running on port 5555:


<site name="MyApp" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\dev\MyApp" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:5555:localhost" />
    </bindings>
</site>

PowerShell script to list running sites:


Get-Process iisexpress | ForEach-Object {
    $cmdline = $_.CommandLine
    if($cmdline -match "-site:(\w+)"){
        [PSCustomObject]@{
            SiteName = $matches[1]
            ProcessId = $_.Id
        }
    }
}

For frequent IISExpress users, consider building a simple WPF admin tool leveraging:


Microsoft.Web.Administration.dll

Sample C# code to read sites:


using (ServerManager serverManager = new ServerManager()) 
{
    foreach (Site site in serverManager.Sites)
    {
        Console.WriteLine(site.Name);
    }
}