dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.43k stars 10.02k forks source link

Consider removing out-of-proc hosting model for IIS #40863

Open HaoK opened 2 years ago

HaoK commented 2 years ago

InProcess hosting is much better in terms of resources and performance, we should see if there are any remaining blockers from removing support for the out-of-proc model

adityamandaleeka commented 2 years ago

cc: @ldillonel

adityamandaleeka commented 2 years ago

Triage: if we do this in 7, we need to make sure not to break people on prior versions.

HaoK commented 2 years ago

Looking at ANCM a bit, there is a fair bit of outofproc logic, perhaps the best thing to do when we remove outofproc support is to add ANCMv3 so its explicitly clear, and then we can worry less about sxs as we'd have our own v3 shim?

HaoK commented 2 years ago

Unassigning myself for now, since there's no work to be done in the near future

ghost commented 1 year ago

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

afastrunner commented 7 months ago

I'd like to voice my concern with removing outofprocess support.

In-Process has the requirement listed as "Sharing an app pool among apps isn't supported. Use one app pool per app."

Azure App Service is a single application pool even when virtual directories are defined.

Our client applications (50+) are hosted primarily like this: image / is a .net 8.0 MVC website /admin is a .net 4.8 webforms admin portal

The applications share configuration/connection strings/local files, and function as a single website.

I tested recently on a local IIS setting the .net 8.0 app to inprocess while still being in the same pool as the .net 4.8 app and it DOES currently work though would be "unsuported" and that would unacceptable for clients production sites.

image

I'm aware of the correct way would be to use multiple web apps and a reverse proxy like frontdoor along with blob storage for shared files, with config moved to azure app configuration, but these would add to both complexity and cost for what are fairly simple and low traffic websites.

The other impact would be as this person points out https://learn.microsoft.com/en-us/answers/questions/1375456/deploying-two-apis-into-single-app-service 2 .net 8.0 applications would NOT be able to run at all in this setup.

I doubt Azure App Service has any plans to support multiple application pools so would hope to keep outofprocess for us smaller developers who value keeping more than 1 application together in a web app.