In moving one of the projects from VS2013 to VS2015 I realized that IISExpress settings specified in the users applicationhost.config
file got overridden. After a quick search, it came to me that another applicationhost.config file was created by the VS2015 and placed in the .vs/config folder under the root of my project.
This is, however, an undesired behaviour as I do not want to check in the source code the .vs folder, being that a bad practice also described by Microsoft itself. Files under the .vs folder are all files that you would never check in, since they are generated from a build or contain machine-specific information.
Then how to proceed with what concerns my applicationhost.config file?
There is a solution for this and it lies in a setting that is part of our project file. If you edit your web project .csproj file with a text editor, you should find a MSBuild property called UseGlobalApplicationHostFile
. By default, the UseGlobalApplicationHostFile is specified and the value of it is not set, so you should see the following:
<UseGlobalApplicationHostFile />
As you can imagine from the property name, if set to true, it will indicate that for the project in question the global applicationhost.config
file should be used, and that is precisely what we are looking for. Set this property to true:
<UseGlobalApplicationHostFile>True</UseGlobalApplicationHostFile>
Once it is set, we can see that our global applicationhost.config file (which is located in %USERPROFILE%\Documents\IIS Express\config\applicationHost.config
) is again used and that my application can be launched for debug from Visual Studio correctly.
Job done!