Currently I'm trying to find a way to build a desktop app that hosts a browser window and uses JavaScript to communicate with a local ASP.NET Core Web API as the "backend":
All my searches lead to the suggestion that I should use IIS Express web server.
Unfortunately, IIS Express does not fit into my scenario, since I want the whole application to be installable and runnable by non-admin users.
Since IIS Express requires administrative permissions to install, this is out-of-scope to me.
My question:
Is there another way beside using IIS Express to run an ASP.NET Core Web API project?
I've read about the Kestrel server which seems to be what I am looking for, but I still don't get the big picture here.
Edit 1:
I've asked a somewhat releated question over at SE Software Recommendations.
IIS and ASP.NET Core The most important thing to understand about hosting ASP.NET Core is that it runs as a standalone, out of process Console application. It's not hosted inside of IIS and it doesn't need IIS to run.
ASP.NET Web API does not need to always be hosted in IIS. You can host them in a separate process by creating a host application. Such a self-hosting is typically done using a Console application or a Windows application.
YES. When we use the InProcess Hosting model, then the application is hosted inside the IIS worker process i.e. w3wp.exe in the case of IIS and iisexpress.exe in the case of IIS Express. That means the Kestrel Web Server is not used with the InProcess hosting model.
I'm sure Kestrel will work well for you in this situation. It's a cross platform web server which is based on libuv
which means it is super fast. The official benchmarks show just how much it outperforms standard IIS.
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