ADFS2 requires that a RP Trust uses https. The RP trust being https://localhost:44310/PAWS/
. With that said, I need to have IIS Express use SSL locally. So, when I configure my ASP.NET MVC4 project to use IIS Express.
When I check this in to TFS (source control) and another developer on the team gets latest. The project will not load for them.
Visual Studio 2012 will display the following error messages when opening the solution:
This is because IIS Express wont automatically read the project file and add the HTTPS binding to the site configuration. This is the configuration that VS adds to IIS Express' applicationhost.config file
<site name="PAWS.Web-Site" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\larsene\Documents\My Web Sites\PAWS.Web-Site14" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:44310:localhost" />
</bindings>
</site>
But I need it to have the binding protocol set to HTTPS like so:
<binding protocol="https" bindingInformation="*:44310:localhost" />
I can either manually enter that into the applicationhost.config. Or I can run the appcmd.exe like so to configure it.
"%ProgramFiles(x86)%\IIS Express\appcmd.exe" set site /site.name:PAWS.Web-Site /bindings:https/*:44310:localhost
But either of these 2 methods is not what I want. I don't want to have to explain to every developer that works on this project to have to manually edit their IIS Express settings before they can even load the project.
This is easily re-createable by first closing VS2012. Then deleting the config folder for IIS Express located in
%USERPROFILE%\Documents\IISExpress
and then open VS2012 and also open the solution to the MVC4 project that's configured to use IIS Express with https. Now, VS2012 will fail to load the project and complain about no secure bindings.
What am I doing wrong or how can I fix this so that people who get latest on my project will just be able to run it?
I have recently come across this same problem, and I've been able to determine why it's happening.
Visual Studio is using the Project Url setting to set the IIS Express http binding, and then it looks at the IISExpressSSLPort setting to set the https binding.
However, if you've changed the Project Url to an https address, that is when Visual Studio gets confused. For the purposes of IIS Express binding updating, it assumes that you've entered an http address for the Project Url and doesn't seem to be able to handle an https address being there.
This complicates things since changing the Project Url to an https address is the only way I've found to make Visual Studio start debugging the https url by default.
So, this seems to be a problem in how Visual Studio is handling the IIS Express binding updates. I'm not aware of a good workaround that allows both the automated binding updates and to start debugging with the https address loaded.
I can confirm that Visual Studio 2013 is free from this issue.
Upgrading from VS2012 to 2013 solved the problem for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With