Cleaning up IIS Express configuration

IIS Express stores its configuration settings in the %USERPROFILE%\Documents\IIS Express\config\applicationHost.config file which eliminates the need for administrative permissions for changing it. As a consequence when you uninstall Visual Studio, the webserver configuration remains in the user’s profile folder.

It may happen, that you uninstall VS 2012, install VS 2013 and then when you create a new web application it behaves very strange, for example it asks for Windows authentication every time. This may be caused because you have created a website with the same name earlier in IIS Express, and its settings are preserver in the configuration file.

If you often create new web applications in Visual Studio, it is a good practice to clean up IIS configuration once in a while. Because there is no GUI for IIS Express, you can edit the applicationHost.config file directly or you can use the command line.

You can find the appcmd.exe for IIS Express in the C:\Program Files (x86)\IIS Express folder. You can use it to list the websites:

C:\Program Files (x86)\IIS Express>appcmd list site
SITE "WebSite1" (id:1,bindings:http/:8080:localhost,state:Unknown)
SITE "MyProject" (id:2,bindings:http/*:44441:localhost,https/*:44300:localhost,state:Unknown)
SITE "WebSite1(1)" (id:3,bindings:http/*:44468:localhost,state:Unknown)
SITE "WebSite2" (id:4,bindings:http/*:44465:localhost,state:Unknown)

If the names of the websites do not tell too much, then you can list the virtual directories, because that list shows the physical paths as well:

C:\Program Files (x86)\IIS Express>appcmd list vdir
VDIR "WebSite1/" (physicalPath:%IIS_SITES_HOME%\WebSite1)
VDIR "MyProject/" (physicalPath:W:\Projektek\MyProject)
VDIR "WebSite1(1)/" (physicalPath:W:\Temp\WebSite1)
VDIR "WebSite2/" (physicalPath:W:\Desktop\WebSite2)

You can even give them meaningful names by renaming them:

C:\Program Files (x86)\IIS Express>appcmd set site WebSite1(1) -name:Master
SITE object "WebSite1(1)" changed

And you can delete the sites you don’t need any more:

C:\Program Files (x86)\IIS Express>appcmd delete site WebSite2
SITE object "WebSite2" deleted

 

Technorati-címkék: ,,

14 thoughts on “Cleaning up IIS Express configuration

  1. csb

    Adding on to hazzik’s command suggested above … you can create a batch file named something like “CleanupIISExpressWebSites.cmd” that contains the following lines:

    @echo off
    pushd “C:\Program Files (x86)\IIS Express”
    for /F %%i in (‘appcmd list sites /text:NAME’) do appcmd delete site %%i
    popd

    If you remove all web sites from IIS Express and then open up a project in VS 2013, build and run it, then it automatically recreates the web site in IIS Express as needed.

    You can verify this by monitoring the config file used by IIS Express, which can be found in:
    %userprofile%\Documents\IISExpress\config\applicationHost.config

    Reply
  2. lymber

    yes finally this worked for me when you get a HTTP Error 500.19 – Internal Server Error – Config Error Cannot read configuration during VS 2013 debugging

    Reply
  3. Pingback: angular and servicestack in .net - changing the root path is a nightmare - elbsolutions.com Project List & Blog

  4. Pingback: Cleaning up IIS Express configuration | Daniel Cenáculo's Blog

  5. Pingback: Feature update to Windows 10, version 1709 affects Visual Studio 2015 IIS Express – program faq

Leave a comment