OK, let's try this again, and break this down into bite sized parts and issues.
That it is possible, how to set up, and execute
It actually in most cases not a issue of "possible". It is a question of required.
To run a asp.net web site (.net framework) you REQUIRE to setup IIS when using .net framework, and if you using .net core, then a whole web server can be (optionally) included in your final product.
In other words, to setup a web server and use, or not use IIS, you don't have a choice here. You MUST have a working and compatible web server to run your asp.net web site.
If you build some software for Windows, then that software will not run on an Android phone. The same applies to your software (web site) you build with .net tools.
The application and web site you build will not work, and can't be run unless you ALSO provide a web server. And that web server has to be running BEFORE you try and run your asp.net web site.
So, really, the issue of running a web server as a "service" as opposed to say having the web site start up when the web site is being used? Not all that of a big deal.
However, the MOST important concept here is that such software (the web site you built) will not run without a web server.
So, you can kind of think of this issue like when you use a database like SQL Server. You could on your computer startup, have SQL Server startup and run as a service.
Or, I suppose you could have when your software wants to use such a database, it could start a copy of SQL server. But, at the end of the day, note how EITHER WAY, you STILL need that database server running for the database to work.
The same concept applies to a web server.
So, with the above concept clear, we can now address the 2nd issue:
Because IIS may not be a viable option
Well, if your software requires IIS, then you do NOT have a choice here. If you build your site with asp.net + .net framework, then you MUST install + setup IIS for that software to work. So, if IIS is not a choice that you can make, or is not viable as you note?
Then you can't run that site, and you can't use asp.net + .net framework for that choice. In other words if IIS is not a choice, or will not be available? Then you can't run that site, and you have to use different development tools.
Remember, even during development, when you hit f5 to run/debug your code? (.net framework)
Visual Studio will start up a copy of IIS (IIS express version). Without that web server running, then your software will not work. So, after hitting F5, Visual Studio starts a copy of IIS, waits for it to complete startup and is now running, and then Visual Studio passes your web pages and site to that running copy of IIS.
And even if you purchase some low cost web hosting, then that web hosting will have a running copy of IIS for your software to use. And without that running copy of IIS, then your software will not run.
In the case of .net core? (not .net framework). Then the choices are less restrictive, since you now don't need IIS. However, you STILL in ALL cases need a compatible web server that can run your .net core code.
So, then how does a .net core site run say on a Linux site, and that server has say Apache web server? (which cannot run the .net core web site)?
Well, during a publish, there is a option in Visual Studio, and it will INCLUDE in your publish a whole separate web server!
Note now once again, a WHOLE web site server is included in your publish.
And note once again, this is required, and your asp.net + .net core site will not run, will not work, and ONLY works WHEN you include that WHOLE web server along with your deployment.
For above, then the existing web server (Say Apache) does not really run your web site, but only acts as a proxy, or simple "router" to hand the pages off to that working and running and valid .net core web server!
So at the end of the day:
You will need IIS running and working BEFORE your web site written in asp.net + .net framework runs. And if you require .net framework, then you have to use IIS, and that web server ONLY runs on a windows box right now.
If you build to .net core, then you can at publish time include a WHOLE .net core compatible web server, and once again, that web server has to be up and running BEFORE your software can be run.
So, even if we throw out the issue of a service vs a running program. Either way, and in all cases, you still require a valid running copy of that web server, and without that valid running copy of that web server. Your software can't run, and will not work.
And since it does not make sense to start, and then stop the web server over and over as your software runs; then in most cases, it is better to have the web site up and running at all times, and thus such web servers are usually run as a service.
The web site you build still can't run, and you can't JUST launch your software unless that web site is up and running.
Your software in all cases still requires a valid working and running web server to process those web pages.
So, just keep in mind, that no matter how you approach this issue, your software built in Visual Studio as a web site requires a valid and working and running copy of a web server to work, and that web site cannot be just any web server, but ONLY ones that are designed to work with the .net core, or .net framework.
The web server is for the most part a separate "thing" that is required to be up and running, and ready to process any web pages requested, including the ones you built with Visual studio.
Those web pages don't work if you just try to load or launch the web page in some file folder. Such pages have to be first processed by the web server before being sent to the client side browser. And that processing of those web pages requires a compatible .net web server for such pages to work correctly when .net core or .net framework code is involved for such pages.
So, just keep in mind, you can't JUST run your web application as stand alone, such a web site will only work and and only run when paired with a web server, and a .net compatible web server.