IIS Express and a website that has HTTP and HTTPS pages

Posted on 2012-12-20
Last Modified: 2013-01-17

My website has HTTP and HTTPS pages.  I am using IIS Express and have it working for HTTP and HTTPS, but when its running I cannot browse from an HTTP to HTTPS (if in HTTP mode) and vice versa.  

How do I get IIS Express to allow me to browse HTTP page using HTTPS://localhost:44300/

Question by:nutnut

Expert Comment

ID: 38711460
Here is a link to how you enable SSL in IIS Express - pictures and everything.

Hope it helps.

Helpful link

Author Comment

ID: 38711473
Thanks but I have ssl working already I just cannot switch between http and https when site is running
LVL 33

Expert Comment

by:Dave Howe
ID: 38712284
Hi Nutnut,

  I could be wrong, but I think you are misunderstanding a fundamental principle here - you can't have HTTP *AND* HTTPS on the same port.

  Assuming you want to use the pattern shown, you would want a binding to http for 8000 and for https on 44300 - then the urls would be http://localhost:8000/ and https://localhost:44300/ respectively.

Author Comment

ID: 38712386
Hi, my site has half of it as HTTP and once logged in HTTPS is used.  When I run the site I cannot move between an HTTP and HTTPS page.  So, if I run IIS express in HTTP mode I can browse all HTTP pages but cannot log in.  If I run IIS express in HTTPs mode and make the log page the start page, I can log in and use all HTTPS pages but if I log out to the HTTP part of the site it just hangs.
LVL 33

Expert Comment

by:Dave Howe
ID: 38712448
That sounds more like a problem with whatever you are using for login authentication - it should be able to submit cookies and/or form info between the two, but if you are using an asp session variable to hold state, that often won't go well between http/https; asp session variables have this issue in IIS7 (in my experience) and I was gratified to find that it had been anticipated and there is a flag ("New ID on secure connection") you can configure to disable this behaviour and give a shared ASP session environment. I must admit though I haven't tried even that on a machine using non-standard port bindings, nor do I know if IIS Express even has such a flag.
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails


Author Comment

ID: 38712455
Thanks. Should HTTP page be able to be displayed on localhost:44300?  Because if I can get this working then its solved.
LVL 33

Expert Comment

by:Dave Howe
ID: 38712482
you can, but only if ssl isn't there.
you must have separate ports for ssl and non-ssl listeners.

Author Comment

ID: 38714342
thanks how can i do this
LVL 33

Accepted Solution

Dave Howe earned 250 total points
ID: 38720319
you do that by disabling security on port 44300 - but then, https won't work.
you can't *ever* have http AND https on the same ip+port
LVL 16

Assisted Solution

jessc7 earned 250 total points
ID: 38734557
For normal web traffic, regular HTTP requests happen over port 80, and regular HTTPS requests happen over port 443.

You cannot have both non-SSL (HTTP) and SSL (HTTPS) traffic on the same port, as DaveHowe said.

You would need to have two bindings in your IIS Express site to use both. For example, you might have HTTPS traffic on 44300, and HTTP traffic on 8000. Make sure you disable SSL on the 8000 binding.

In your application, you are going to have to manage that you are using specific, custom ports to go between SSL and non-SSL traffic. You probably want to have these as application parameters in your web.config or elsewhere that your application can reference.

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Companies keep a much closer eye on costs today, so changing to new Technology – Microsoft Office 365 is the smartest move to take.
Moving applications to the cloud or switching services to cloud-based ones, is a stressful job.  Here's how you can make it easier.
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.
This Micro Tutorial will explain how to export DynamoDB tables in Amazon Web Services.

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now