I am attempting to use ServerManager from a C# console application to make some site changes to the IIS metabase.
I have a site I want to deploy without any downtime, to do this I am:
Creating a new second site with it's own application pool using the new DLLs
Adding a binding which can be accessed locally so I can fire the first request into the second site and it's "warmed up"
I am removing the binding of www.domain.com from the original site, and then adding it to the second site, then calling CommitChanges()
Here is where the trouble starts, the binding information is correctly updated, however IIS has stopped the second site. Is there some way I can remove the original binding and place it on a new site without calling commit changes twice?
I really want to avoid having the overhead of ARR in this instance or any other load balancing etc, is there a way of swapping a binding from one site to another without downtime? It really feels like there should be.
If Microsoft doesn't support this with IIS, you'll be happy to know that you can do this with nginx: http://developer.7digital.com/blog/atomic-mono-deployment-capistrano-and-nginx-under-debian
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