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:
- Project Properties > Web > Servers section
- Solution Explorer right-click on project > "View in Browser"
- 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);
}
}