ChatGPT解决这个技术问题 Extra ChatGPT

Where is the IIS Express configuration / metabase file found?

Where can the IIS Express configuration / metabase file be found?


M
Myster

The configuration file is called applicationhost.config. It's stored here:

My Documents > IIS Express > config

usually, but not always, one of these paths will work

%userprofile%\documents\iisexpress\config\applicationhost.config
%userprofile%\my documents\iisexpress\config\applicationhost.config

Update for VS2019 If you're using Visual Studio 2019+ check this path:

$(solutionDir)\.vs\{projectName}\config\applicationhost.config

Update for VS2015 (credit: @Talon) If you're using Visual Studio 2015-2017 check this path:

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

In Visual Studio 2015+ you can also configure which applicationhost.config file is used by altering the <UseGlobalApplicationHostFile>true|false</UseGlobalApplicationHostFile> setting in the project file (eg: MyProject.csproj). (source: MSDN forum)


VS2015 projects can also use global config file. There is a project setting controlling it, which you might add.
You save my day. I introduced some ASP.NET 5 (vNext) to sln, then ASP.NET 4.5 web project won't run but complain about process not run. After removing the .vs folder along with the $(solutionDir)\.vs\config\applicationhost.config, things work again. :)
For the reference, the command to start IIS Express, as per documentation): > iisexpress /config:config-file /site:site-name, where config-file is a full path to applicationhost.config. See also answer by @CosCallis about the easiest way to get this path. site-name should match one of the names in <sites> section of applicationhost.config.
If you'd like to disable logs during development find the node and set/add enabled to false <siteDefaults> <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" enabled="false"/> <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="false" maxLogFileSizeKB="1024" /> </siteDefaults>
Thanks for pointing the update to VS2019 out. Was migrating and wondered why my config file didn't change the behaviour of IIS Express.
C
Cos Callis

For VS 2015 & VS 2017: Right-click the IIS Express system tray icon (when running the application), and select "Show all applications":

https://i.stack.imgur.com/vRzie.png

Then, select the relevant application and click the applicationhost.config file path:

https://i.stack.imgur.com/9NfDS.png


Because this is the answer that will definitively get you to the right path every single time, this should be the accepted answer.
@cos-callis Regarding your edit is the IIS Express system tray behavior really dependent on Visual Studio?
@BjörnAliGöransson Not having a VS 2013 system up and running I can't readily go back and check but I 'know' that this works on VS 2015/17 and I 'know' that in pre-2015 the location of the config data was different. As much as anything I am frequently frustrated by questions and answers that pop up on a search where the 'accepted' answer is ancient and obsolete, therefore I felt it worth adding that 'as of today' your answer is 'valid on 2015/17' ... no promises for whether or not it will be true in VS 2019+++ :)
I get your point 👍 but I think that IIS express was released with/same time as VS 2012, before that there was only Cassini - IIRC???
Check this piece of history out, from 2011: abhijitjana.net/2011/08/05/… "Visual Studio 2010 SP1 provides complete integration with IIS Express"
T
Talon

Since the introduction of Visual Studio 2015, this location has changed and is added into your solution root under the following location:

C:\<Path\To\Solution>\.vs\config\applicationhost.config

I hope this saves you some time!


After realising this it looks like the config in the My Documents folder is actually used as a template that is used when you setup a new project and run it up in IIS Express. You still need to keep the original one where it lives as far as I can tell, but if you want to modify the logs location for all new projects you can update this file to move them elsewhere
R
Rowland Shaw

To come full circle and include all versions of Visual Studio, @Myster originally stated that;

Pre Visual Studio 2015 the paths to applicationhost.config were:

%userprofile%\documents\iisexpress\config\applicationhost.config
%userprofile%\my documents\iisexpress\config\applicationhost.config

Visual Studio 2015/2017 path can be found at: (credit: @Talon)

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

Visual Studio 2019 path can be found at: (credit: @Talon)

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

But the part that might get some people is that the project settings in the .sln file can repopulate the applicationhost.config for Visual Studio 2015+. (credit: @Lex Li)

So, if you make a change in the applicationhost.config you also have to make sure your changes match here:

$(solutionDir)\ProjectName.sln

The two important settings should look like:

Project("{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}") = "ProjectName", "ProjectPath\", "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"

and

VWDPort = "Port#"

What is important here is that the two settings in the .sln must match the name and bindingInformation respectively in the applicationhost.config file if you plan on making changes. There may be more places that link these two files and I will update as I find more links either by comments or more experience.


P
Phil Morris

I think all the answers here are relevant however if, like me, you are looking for where Visual Studio takes the template from when it creates a new version of the applicationHost.config then you can look here:

C:\Program Files (x86)\IIS Express\config\templates\PersonalWebServer

This happens a lot if you are often working on multiple branches of the same project and pressing 'debug' in a lot of them. Making an edit here will ensure that edit propagates to any new project/solution folders that get created.

Answer indirectly came from this answer


This is great, because we regularly had to modify this config file when new branches were created. Now we can have devs modify this base file and all future branches will be good! THANK YOU!
R
RichieMN

For Visual Studio 2019 (v16.2.4) I was only able to find this file here:

https://i.stack.imgur.com/b4d4H.png

Hope this helps as I wasn't able to find the .vs folder location as mentioned in the above suggestions.


This is equivalent to the first suggestion of %userprofile%\documents\iisexpress\config\applicationhost.config. Although, if you run via visual studio I would expect it to use the one in the .vs directory.