Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
IIS in Production: Deploying, app_offline.htm, Locked Files, Application Initialization and Angular
The DLLs of an app running on IIS are locked; deploy with app_offline.htm or with enableShadowCopy, supported since .NET 7, and keep those settings in the project's web.config rather than on the server, since publish preserves them. Recycling and overlapped recycle, Application Initialization and idle timeout, Data Protection on IIS, sub-applications, Angular with URL Rewrite and AddWindowsService instead of IIS; IIS wasn't run on this Mac, the web.config and build outputs are real.
ASP.NET Core on IIS: Hosting Bundle, ASP.NET Core Module, In-Process and Out-of-Process
On IIS, ASP.NET Core is run by the ASP.NET Core Module; if the Hosting Bundle is installed before IIS it must be repaired, otherwise you get a 500.19 and not a single line of the app runs. We cover the web.config that publish produces, in-process versus out-of-process, app pool and ApplicationPoolIdentity permissions, and where errors such as 500.30, 500.31, 500.38 and 502.5 point you; IIS wasn't run on this Mac, the web.config outputs come from real publishes.