I'd wager 99.99% of all .net shops in the world deploy onto a platform that can run IIS.
EDIT: as to the "why", I think it's because IIS is such an intrinsic part of the .net ecosystem that it's basically inevitable your asp.net app will become hosted by it.
> EDIT: as to the "why", I think it's because IIS is such an intrinsic part of the .net ecosystem that it's basically inevitable your asp.net app will become hosted by it.
This was true a decade ago but isn't any longer with the advent of .NET Core. Even legacy dinosaurs are figuring out that you can package a .NET Core app as an image and deploy it on OpenShift.
Anyways, you are right about the fact you don't _need_ IIS to run your asp.net core app. It's just a very convenient proxy to your app, especially if you need things like sessions and, what's that thing called, ah yes, authentication.
>> OpenShift
I mean, if you need a cluster of machines, for whatever reason, then why not use that?
However, I'm unable to answer the "why" part of your question, though I'm very curious about it.
In their case, nothing they do couldn't be done better on Linux. Windows has actually been a complete PITA for deployment. But apparently, the provider, for some reason, has "always done it this way".
I last used it full time in 2015 (about 20% of my career was spent in .net stuff and the frameworks and languages were excellent.) Back then I could do single click deploys out of the box from visual studio straight to IIS in ways much more elegant than anything I had seen in the ruby world.
All this was before asp.net core, and all their Linux stuff.
It must be even easier now.
In my case Microsoft licensing and the cost that comes with it
And for internal applications where users already have per-user Windows CALs, Windows Server is already licensed and deployed, IIS is effectively free.
With that said, it's not obviously better or worse than open source alternatives in general, just different — though, at least from an admin perspective, not necessarily any more different than, say, Apache and Nginx.
My own personal bias tends towards deploying on a given application's "native" platform where possible, so I'd generally only consider IIS as an application server for a Windows-native application or application developed using a primarily Microsoft stack.
And, for reasons of license cost alone, I'd certainly look elsewhere for any non-revenue-generating personal applications.
But in these cases at least, modern IIS releases are, in my experience, stable, reliable, extensible, securable, and as easy to deploy and configure as anything else I've used (mostly Apache and Nginx).
I can't comment on scalability because I've never personally had to scale it beyond a few tens of thousands of (total, not concurrent) users.
Plenty of dumpster-fire applications are implemented on top of IIS, of course, but that's true of any popular Web application server.
you do not need external connector licensing (only if you authenticate all users against ad)